svn commit: r236935 - head/sys/kern
Pawel Jakub Dawidek
pjd at FreeBSD.org
Tue Jun 12 16:03:24 UTC 2012
On Tue, Jun 12, 2012 at 03:49:50PM +0200, Mateusz Guzik wrote:
> On Tue, Jun 12, 2012 at 01:43:35PM +0200, Pawel Jakub Dawidek wrote:
> > On Tue, Jun 12, 2012 at 12:47:49PM +0200, Mateusz Guzik wrote:
> > > The problem is that fdalloc grows to at most fdp->fd_nfiles * 2, which
> > > still may not be enough to have place for new fd with high number.
> >
> > I was under impression that fd_first_free() can return at most
> > fdp->fd_nfiles, but indeed I missed this:
> >
> > if (low >= size)
> > return (low);
> >
> > So fd_first_free() can return number biffer than size...
> >
> > > This fixed the problem for me, although I'm not sure whether it's ok to
> > > grow the table like this:
> > > http://people.freebsd.org/~mjg/patches/fdalloc.patch
> >
> > The patch looks good to me, could you please commit it, preferably after
> > David's trying it and also update fd_first_free() comment, so it is
> > clear that returned value can exceed 'size -1'?
> >
>
> Given that you partially reverted r236935 I created a combined patch:
> http://people.freebsd.org/~mjg/patches/fdalloc%2bfd_first_free.patch
>
> Is this ok?
>
> Most changes are obiously yours, so I see no problem if you prefer to
> commit this yourself.
>
> Otherwise I plan to commit it with the following:
> Re-apply reverted parts of r236935 by pjd with some fixes.
>
> If fdalloc decides to grow fdtable it does it once and at most doubles
> the size. This still may be not enough for sufficiently large fd. Use fd
> in calculations of new size in order to fix this.
>
> Fix description of fd_first_free to note that it returns passed fd if it
> exceeds fdtable's size.
>
> ======
Look good and you can just add 'In co-operation with: pjd'.
One minor thing is that fd_first_free() can return 'size' if there are
no free slots available. Could you include that in the comment as well?
> fd_last_used has very same problem with comment as fd_first_free. This
> function is static and the only caller always passes 0 as low. Given
> that, how about the following:
> http://people.freebsd.org/~mjg/patches/fd_last_used-cleanup.patch
Looks good too.
--
Pawel Jakub Dawidek http://www.wheelsystems.com
FreeBSD committer http://www.FreeBSD.org
Am I Evil? Yes, I Am! http://tupytaj.pl
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/svn-src-all/attachments/20120612/053e2a5d/attachment.pgp
More information about the svn-src-all
mailing list