From: Eric Dumazet <dada1@cosmosbay.com>
To: Vadim Lobanov <vlobanov@speakeasy.net>
Cc: akpm@osdl.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2/5] fdtable: Make fdarray and fdsets equal in size.
Date: Tue, 10 Oct 2006 19:12:56 +0200 [thread overview]
Message-ID: <200610101912.56280.dada1@cosmosbay.com> (raw)
In-Reply-To: <200610052151.04490.vlobanov@speakeasy.net>
On Friday 06 October 2006 06:51, Vadim Lobanov wrote:
> - nfds = max_t(int, 8 * L1_CACHE_BYTES, roundup_pow_of_two(nr + 1));
> - if (nfds > NR_OPEN)
> - nfds = NR_OPEN;
> -
> - new_openset = alloc_fdset(nfds);
> - new_execset = alloc_fdset(nfds);
> - if (!new_openset || !new_execset)
> - goto out;
> - fdt->open_fds = new_openset;
> - fdt->close_on_exec = new_execset;
> - fdt->max_fdset = nfds;
> -
> nfds = NR_OPEN_DEFAULT;
> /*
> * Expand to the max in easy steps, and keep expanding it until
> @@ -271,15 +254,21 @@ static struct fdtable *alloc_fdtable(int
> nfds = NR_OPEN;
> }
> } while (nfds <= nr);
If I understand well, we may allocate very small fdset, while previous minimum
size was L1_CACHE_BYTES bytes. (512 bits for a 64 bytes cache line)
If you check commit 0c9e63fd38a2fb2181668a0cdd622a3c23cfd567,
(http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0c9e63fd38a2fb2181668a0cdd622a3c23cfd567 )
you'll find this comment of mine :
3) Reduce size of allocated fdset. Currently two full pages are
allocated, that is 32768 bits on x86 for example, and way too much. The
minimum is now L1_CACHE_BYTES.
This minimum is mandatory to be sure two tasks wont share the same cache line
to store their fdset (and possibly do lot of cache line ping pongs)
Eric
next prev parent reply other threads:[~2006-10-10 17:12 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-10-06 4:51 [PATCH 2/5] fdtable: Make fdarray and fdsets equal in size Vadim Lobanov
2006-10-06 6:45 ` Dipankar Sarma
2006-10-10 17:12 ` Eric Dumazet [this message]
2006-10-10 18:36 ` Vadim Lobanov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200610101912.56280.dada1@cosmosbay.com \
--to=dada1@cosmosbay.com \
--cc=akpm@osdl.org \
--cc=linux-kernel@vger.kernel.org \
--cc=vlobanov@speakeasy.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox