This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/OpenBSC@lists.osmocom.org/.
Tom Tsou tom at tsou.ccOn Tue, Apr 29, 2014 at 3:08 AM, Holger Hans Peter Freyther <holger at freyther.de> wrote: > On Tue, Apr 29, 2014 at 12:12:09AM -0400, Thomas Tsou wrote: >> +#define SSE_ALIGN 16 >> + >> +static int16_t *vdec_malloc(size_t n) >> +{ >> +#ifdef HAVE_SSE3 >> + return (int16_t *) memalign(SSE_ALIGN, sizeof(int16_t) * n); >> +#else >> + return (int16_t *) malloc(sizeof(int16_t) * n); >> +#endif >> +} > > argh, it would be nice if you could use talloc here but then we would > need to play games and align pointers ourselves. Maybe change the API > to at least have a 'ctx' similar to other talloc API? A beneficial change would be to modify the API to allow persistent decoder objects instead of performing an allocation and tear-down on every decoding call. From a performance standpoint, the current implementation is unnecessarily restricted by memory access and page faults for that reason. >> +static void free_trellis(struct vtrellis *trellis) >> +{ >> + if (!trellis) >> + return; >> + >> + free(trellis->vals); >> + free(trellis->outputs); >> + free(trellis->sums); >> + free(trellis); > > Can you use talloc here? Yes. I think that makes sense. Memory alignment is the only issue that needs to be looked into. >> + _traceback_rec(dec, state, out, len); > > _ is reserved for the system. We might want to avoid using that. I thought only double underscore and single underscore with capital letter were reserved? -TT