lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Pine.LNX.4.64.0706031105460.13247@alien.or.mcafeemobile.com>
Date:	Sun, 3 Jun 2007 11:22:40 -0700 (PDT)
From:	Davide Libenzi <davidel@...ilserver.org>
To:	Ingo Molnar <mingo@...e.hu>
cc:	Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
	Linus Torvalds <torvalds@...ux-foundation.org>,
	Andrew Morton <akpm@...ux-foundation.org>,
	Ulrich Drepper <drepper@...hat.com>
Subject: Re: [patch 2/2] ufd v1 - use unsequential O(1) fdmap

On Sun, 3 Jun 2007, Ingo Molnar wrote:

> > #define FD_UNSEQ_BASE	(1U << 28)
> > #define FD_UNSEQ_ALLOC  (1U << 30)
> 
> i'm wondering, why not use (1 << 30) both as the base and as the flag? 
> That would make integration of the new fd space 'seemless' in terms of 
> dup2() use.

There are two behaviours to handle. One is the standard dup2() one, where 
you pass a "newfd" by saying that you want "oldfd" exactly on top of 
"newfd". With the new sys_dup2() you can pass an fd inside the 
unsequential area, and have the same behviour of the legacy dup2().
The other one, unique to unsequential fds, is asking the kernel to just 
allocate a free one from the unsequential map, whatever it is.
So we need a flag, that is "far enough" from the unsequential map 
allocation space. I was actually thinking of moving FD_UNSEQ_BASE down to
(1 << 27) or (1 << 26), and leave some more space for flags.
128M or 64M of descriptors should be enough for the legacy, sequential fd 
allocator ;)



> > It'd be possible to add a new O_UNSEQFD flag to open(2) and make 
> > sys_open() to allocate the new descriptor inside the unsequential map.
> 
> yeah, please do that now - lets not leave any incomplete areas. We've 
> too often made the mistake of not pushing through new APIs consistently 
> enough.

Will do today.



> I'd also suggest a new sys_socket2() call that takes a 'flags' parameter 
> as well - because one primary user of this facility will be networking 
> servers. (O_UNSEQFD would make sense for it and O_NDELAY - currently 
> network apps that want to set O_NDELAY need to do it with an extra 
> fcntl() - while they could already indicate this in the sys_socket() 
> call, if it were closer to sys_open() semantics)

Makes sense for me, since sys_socket() is the primary source of fds 
wherever you have fd-crowded applications. And those definitely aren't 
using select() ;)
I seem to remember, that either you or Uli, talked about task-private fds, 
although I do not remember the context. A close-on-fork flag?



- Davide


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ