public inbox for glibc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug libc/31049] New: Feature request: posix_spawnattr_setrlimit_np()
@ 2023-11-09 21:51 tavianator at tavianator dot com
  2023-11-14 20:55 ` [Bug libc/31049] " adhemerval.zanella at linaro dot org
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: tavianator at tavianator dot com @ 2023-11-09 21:51 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=31049

            Bug ID: 31049
           Summary: Feature request: posix_spawnattr_setrlimit_np()
           Product: glibc
           Version: unspecified
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: libc
          Assignee: unassigned at sourceware dot org
          Reporter: tavianator at tavianator dot com
                CC: drepper.fsp at gmail dot com
  Target Milestone: ---

I have a program that raises its soft RLIMIT_NOFILE, but wants to spawn
processes with the original value (in case they use select(), for example). 
There seems to be no nice way to do this with posix_spawn().  I can temporarily
lower the rlimit in the parent, but that interferes with other threads.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug libc/31049] Feature request: posix_spawnattr_setrlimit_np()
  2023-11-09 21:51 [Bug libc/31049] New: Feature request: posix_spawnattr_setrlimit_np() tavianator at tavianator dot com
@ 2023-11-14 20:55 ` adhemerval.zanella at linaro dot org
  2023-11-14 21:03 ` tavianator at tavianator dot com
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: adhemerval.zanella at linaro dot org @ 2023-11-14 20:55 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=31049

Adhemerval Zanella <adhemerval.zanella at linaro dot org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |adhemerval.zanella at linaro dot o
                   |                            |rg

--- Comment #1 from Adhemerval Zanella <adhemerval.zanella at linaro dot org> ---
I think this would make sense, especially to set up the maximum limits of some
resources.  The next glibc 2.39 will provide a way to set up a new process with
a different cgroupv2 (posix_spawnattr_getcgroup_np,
posix_spawnattr_setcgroup_np), which allows fine-tuning the process constrain
resources through the Linux API. However, the cgroupsv2 might require
additional setup and are more complex.

Could you check if the API provided with this WIP patch would fit the
requirements [1]?

[1] https://github.com/zatrazz/glibc/tree/azanella/bz31049-spawn-setresource

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug libc/31049] Feature request: posix_spawnattr_setrlimit_np()
  2023-11-09 21:51 [Bug libc/31049] New: Feature request: posix_spawnattr_setrlimit_np() tavianator at tavianator dot com
  2023-11-14 20:55 ` [Bug libc/31049] " adhemerval.zanella at linaro dot org
@ 2023-11-14 21:03 ` tavianator at tavianator dot com
  2023-11-15 12:52 ` adhemerval.zanella at linaro dot org
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: tavianator at tavianator dot com @ 2023-11-14 21:03 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=31049

--- Comment #2 from Tavian Barnes <tavianator at tavianator dot com> ---
(In reply to Adhemerval Zanella from comment #1)
> Could you check if the API provided with this WIP patch would fit the
> requirements [1]?
> 
> [1] https://github.com/zatrazz/glibc/tree/azanella/bz31049-spawn-setresource

That looks like it would work.  Should there be a `POSIX_SPAWN_SETRLIMIT[_NP]`
flag?  Most of the other `posix_spawnattr_t` things are guarded by a flag.  On
the other hand, there are not many flag bits available.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug libc/31049] Feature request: posix_spawnattr_setrlimit_np()
  2023-11-09 21:51 [Bug libc/31049] New: Feature request: posix_spawnattr_setrlimit_np() tavianator at tavianator dot com
  2023-11-14 20:55 ` [Bug libc/31049] " adhemerval.zanella at linaro dot org
  2023-11-14 21:03 ` tavianator at tavianator dot com
@ 2023-11-15 12:52 ` adhemerval.zanella at linaro dot org
  2023-11-15 13:12 ` adhemerval.zanella at linaro dot org
  2023-11-15 13:49 ` tavianator at tavianator dot com
  4 siblings, 0 replies; 6+ messages in thread
From: adhemerval.zanella at linaro dot org @ 2023-11-15 12:52 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=31049

--- Comment #3 from Adhemerval Zanella <adhemerval.zanella at linaro dot org> ---
The flag is (In reply to Tavian Barnes from comment #2)
> (In reply to Adhemerval Zanella from comment #1)
> > Could you check if the API provided with this WIP patch would fit the
> > requirements [1]?
> > 
> > [1] https://github.com/zatrazz/glibc/tree/azanella/bz31049-spawn-setresource
> 
> That looks like it would work.  Should there be a
> `POSIX_SPAWN_SETRLIMIT[_NP]` flag?  Most of the other `posix_spawnattr_t`
> things are guarded by a flag.  On the other hand, there are not many flag
> bits available.

I see the flag is required for some options because there is no way to unset an
option once it is set, due the function semantic (which either does not accept
NULL or does not handle invalid inputs, like negative pid_t).

With a flag, I think it would require changing the semantic slightly:
__posix_spawnattr_setrlimit_np does not accept NULL arguments and there is no
way to remove a resource limit from the list (but it would not be applied if
the flag is not set).

Maybe the flag would be more orthogonal to the current posix_spawn interface.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug libc/31049] Feature request: posix_spawnattr_setrlimit_np()
  2023-11-09 21:51 [Bug libc/31049] New: Feature request: posix_spawnattr_setrlimit_np() tavianator at tavianator dot com
                   ` (2 preceding siblings ...)
  2023-11-15 12:52 ` adhemerval.zanella at linaro dot org
@ 2023-11-15 13:12 ` adhemerval.zanella at linaro dot org
  2023-11-15 13:49 ` tavianator at tavianator dot com
  4 siblings, 0 replies; 6+ messages in thread
From: adhemerval.zanella at linaro dot org @ 2023-11-15 13:12 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=31049

--- Comment #4 from Adhemerval Zanella <adhemerval.zanella at linaro dot org> ---
I updated my branch with the flags interface, it should now be more orthogonal
to rest of posix_spawn interface.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug libc/31049] Feature request: posix_spawnattr_setrlimit_np()
  2023-11-09 21:51 [Bug libc/31049] New: Feature request: posix_spawnattr_setrlimit_np() tavianator at tavianator dot com
                   ` (3 preceding siblings ...)
  2023-11-15 13:12 ` adhemerval.zanella at linaro dot org
@ 2023-11-15 13:49 ` tavianator at tavianator dot com
  4 siblings, 0 replies; 6+ messages in thread
From: tavianator at tavianator dot com @ 2023-11-15 13:49 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=31049

--- Comment #5 from Tavian Barnes <tavianator at tavianator dot com> ---
The other advantage of a flag is it's easy to detect support:

#ifdef POSIX_SPAWN_SETRLIMIT
posix_spawnattr_setflags(...);
posix_spawnattr_setrlimit_np(...);
#endif

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2023-11-15 13:49 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-11-09 21:51 [Bug libc/31049] New: Feature request: posix_spawnattr_setrlimit_np() tavianator at tavianator dot com
2023-11-14 20:55 ` [Bug libc/31049] " adhemerval.zanella at linaro dot org
2023-11-14 21:03 ` tavianator at tavianator dot com
2023-11-15 12:52 ` adhemerval.zanella at linaro dot org
2023-11-15 13:12 ` adhemerval.zanella at linaro dot org
2023-11-15 13:49 ` tavianator at tavianator dot com

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).