Hi Bill, and thanks for your review/comments:
I don't think that there any reason (at this time, at least) to worry about
table alignment: The server is -hopefully- used only at non critical times
(such as init...). It is based on socket communications which will be dead
slow compared to the alignment gain anyway.
So I don't think there is much to gain with the alignment.

Christophe.

On 13 September 2016 at 14:02, Bill Fischofer <[email protected]>
wrote:

> This looks good now. Only question is whether you need to worry about
> cache-aligning the table, but that's a tuning option that can be considered
> later if needed.
>
> On Tue, Sep 13, 2016 at 7:40 AM, Christophe Milard <
> [email protected]> wrote:
>
>> The table containing the saved file-descriptors<->{context, key} couples
>> is
>> now dynamically malloc'd in the fd server process, hence avoiding
>> the memory waste which happened in other process when the table was
>> staticaly reserved in all processes.
>>
>> Signed-off-by: Christophe Milard <[email protected]>
>>
>
> Reviewed-by: Bill Fischofer <[email protected]>
>
>
>> ---
>>  platform/linux-generic/_fdserver.c | 14 +++++++++++++-
>>  1 file changed, 13 insertions(+), 1 deletion(-)
>>
>> diff --git a/platform/linux-generic/_fdserver.c
>> b/platform/linux-generic/_fdserver.c
>> index bf36eb2..5cef806 100644
>> --- a/platform/linux-generic/_fdserver.c
>> +++ b/platform/linux-generic/_fdserver.c
>> @@ -73,7 +73,7 @@ typedef struct fdentry_s {
>>         uint64_t key;
>>         int  fd;
>>  } fdentry_t;
>> -static fdentry_t fd_table[FDSERVER_MAX_ENTRIES];
>> +static fdentry_t *fd_table;
>>  static int fd_table_nb_entries;
>>
>>  /*
>> @@ -622,8 +622,20 @@ int _odp_fdserver_init_global(void)
>>                 /* TODO: pin the server on appropriate service cpu mask */
>>                 /* when (if) we can agree on the usage of service mask  */
>>
>> +               /* allocate the space for the file descriptor<->key
>> table: */
>> +               fd_table = malloc(FDSERVER_MAX_ENTRIES *
>> sizeof(fdentry_t));
>> +               if (!fd_table) {
>> +                       ODP_ERR("maloc failed!\n");
>> +                       exit(1);
>> +               }
>> +
>> +               /* wait for clients requests */
>>                 wait_requests(sock); /* Returns when server is stopped  */
>>                 close(sock);
>> +
>> +               /* release the file descriptor table: */
>> +               free(fd_table);
>> +
>>                 exit(0);
>>         }
>>
>> --
>> 2.7.4
>>
>>
>

Reply via email to