All Koji builders are providing a maximum ancillary buffer size of at least 20480, but the armv7 ones. Please raise this limit on them to at least 20480.
echo 20480 > /proc/sys/net/core/optmem_max does the trick for runtime.
echo 20480 > /proc/sys/net/core/optmem_max
To keep this limit on reboots simply drop this in /etc/sysctl.d/40-optmem.conf:
/etc/sysctl.d/40-optmem.conf
# Set the maximum ancillary buffer size allowed per socket to a sane default. net.core.optmem_max = 20480
The i686 workers have a default limit of 10240, too, but it seems it has already been permanently adjusted to 20480 there…
Sry, I forgot about the rationale: The new libkcapi package test suite requires optmem_max to be at least 20480 to run successfully.
libkcapi
optmem_max
Is there any downside to this?
@jforbes @labbott Do you see any issues with doing this?
Or know why the armv7 ones are not that by default?
https://bugzilla.redhat.com/show_bug.cgi?id=1534620 see discussion there.
@kevin: Quoted from comment #1 of the mentioned bugreport:
int sysctl_optmem_max __read_mostly = sizeof(unsigned long)*(2*UIO_MAXIOV+512); sizeof(unsigned long) is going to be different on ARM32 vs. other 64-bit arches, hence the difference. This has been the setting for a very long time, is there a reason changing it via sysctl is not an option?
The size of the default setting simply differs because of the __WORDSIZE of the underlying system architecture, since __SIZEOF_LONG__ is defined to be (__WORDSIZE/8).
__WORDSIZE
__SIZEOF_LONG__
(__WORDSIZE/8)
The documentation for /proc/sys/net doesn't contain any warning about increasing the limit:
/proc/sys/net
optmem_max ---------- Maximum ancillary buffer size allowed per socket. Ancillary data is a sequence of struct cmsghdr structures with appended data.
One last question: what happens if you disable this test? Does the resulting package work on armv7 hosts without the setting changed?
ie, if we adjust this and your test passes, will our users without it adjusted get a working or not working package there?
It will work partially… By partially I mean: It depends on the amount of parallel IOVECs sent to same kernel socket. With the default preset one can send up to 10, the testsuite is runs some tests with 16 in parallel.
partially
Yes, see above and additionally I've temporarily added a sysctl.d preset to increase the preset to a sane level as long as the preset wasn't increased in the kernel itself.
If you want to adjust the value in a change and never need to bother way: Simply install the version of libkcapi, which is currently in updates-testing on the builders, as the package will drop the increased preset as soon as it is not neccessary anymore.
ok. Done and should be active now.
:muscle:
Metadata Update from @kevin: - Issue close_status updated to: Fixed - Issue status updated to: Closed (was: Open)
@kevin Thank you very much! Testsuite now works (and passes) on %{arm} as well. =)