[lkml]   [2007]   [Jun]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [patch 7/8] fdmap v2 - implement sys_socket2
On Thu, 7 Jun 2007, Alan Cox wrote:

> > I don't think it's a matter of versioning. Many userspace libraries
> > expects their fds to be compact (for many reasons - they use select, they
> > use them to index 0-based arrays, etc...), and if the kernel suddendly
> > starts returning values in the 1<<28 up arena, they sure won't be happy.
> > So I believe that the correct way is that the caller specifically selects
> > the feature, leaving the legacy fd allocation as default.
> I don't understand the connection between this paragraph (with which I
> agree) and the urge to add a ton of ugly syscall hacks. "Caller
> specifically selects feature" - > prctl(). Libraries get unhappy ->
> linker issue.

I meant, caller specifically selects the feature, on a per-fd basis. If
you select the task flag runtime, then all the allocated fds will be in
the non-sequential area. Even fds allocated inside the library code, with
libraries not expecting this. I fail to understand how a linker can nicely
solve this. If my app is using, for its own reasons, fds in the
non-sequential area, and library XYZ internally uses fds and does not like
them in that area, I still want to link to that library. As long as I do
not pass my fds to the library ("XYZ internally .."), this must still
work. The contrary is also true. If my app is not non-sequential fd aware,
and my library wants to use them in order to keep them alive from apps
doing the for-each-fd-close loop, with a per-fd policy, you can still mix
them together.
Or are you planning to have two sets of each userspace (userspace is not
only glibc, there's other stuff too) libraries?

- Davide

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2007-06-07 17:43    [W:0.129 / U:1.420 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site