Summary: | POSIX timer (timer_create) limit is too low (32) | ||
---|---|---|---|
Product: | Base System | Reporter: | Val Packett <val> |
Component: | standards | Assignee: | freebsd-standards (Nobody) <standards> |
Status: | New --- | ||
Severity: | Affects Only Me | CC: | cem, crest, emaste, kib |
Priority: | --- | ||
Version: | CURRENT | ||
Hardware: | Any | ||
OS: | Any | ||
See Also: | https://github.com/jiixyj/epoll-shim/issues/8 |
Description
Val Packett
2019-06-18 00:17:30 UTC
It might make more sense to fix epoll-shim to implement timerfd() API in a more scalable way. Why are the timer limits so low? Even kqueue timers are limited to a "handful" of timers system wide. Is each non trivial process expected to reimplement the wheel? Hm, if kqueue is limited to a handful of timers that seems like a problem. Sorry, I'm unfamiliar with the subject area. (In reply to Conrad Meyer from comment #3) Total number of kqueues per uid is limited by rlimit(2) RLIMIT_KQUEUES with no default limit. Global system number of kqueue timers is limited by sysctl kern.kq_calloutmax with the default value 4096. TIMER_MAX defines the number of elements in the per-process structure, so bumping it arbitrary is not possible without reworking the code. It probably can be increased to e.g. 64, but I doubt that this would be useful. Obsolete after base af93fea71038? (In reply to Jan Beich from comment #5) I think so -- the issue in the Subject is still true (TIMER_MAX is still 32), but the user-facing issue has been addressed with the introduction of timerfd to the native syscall interface. |