Looking at the source code, it seems like the __get_free_pages call is
failing. But I don't know what is the significance of said call, and why
it fails beyond the 1MiB limit.
/**
* hmcdrv_cache_startup() - startup of HMC drive cache
* @cachesize: cache size
*
* Return: 0 on success, else a (negative) error code
*/
int hmcdrv_cache_startup(size_t cachesize)
{
if (cachesize > 0) { /* perform caching ? */
hmcdrv_cache_order = get_order(cachesize);
hmcdrv_cache_file.content =
(void *) __get_free_pages(GFP_KERNEL | GFP_DMA,
hmcdrv_cache_order);
if (!hmcdrv_cache_file.content) {
pr_err("Allocating the requested cache size of %zu
bytes failed\n",
cachesize);
return -ENOMEM;
}
pr_debug("content cache enabled, size is %zu bytes\n",
cachesize);
}
hmcdrv_cache_file.len = cachesize;
return 0;
}
--
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1806115
Title:
cannot set hmcdrv cachesize to 1GB
Status in linux package in Ubuntu:
Confirmed
Bug description:
On an LPAR, execute Customize/Delete Activation Profile. Customize
profile. In security section, tick "Input/Output (I/O) configuration
control". Save. Ok. Close.
Execute Deactivate task.
Execute Activate task.
ssh into lpar.
Try to modprobe hmcdrv module, whilst setting cachesize to 1GiB. Going
down to the smallest permissible value.
First, observe that suffixes do not appear to be accepted, despite the
documentation stating that it should be supported:
ubuntu@s1lp7:~$ sudo modprobe hmcdrv cachesize=1G
modprobe: ERROR: could not insert 'hmcdrv': Invalid argument
ubuntu@s1lp7:~$ sudo modprobe hmcdrv cachesize=512M
modprobe: ERROR: could not insert 'hmcdrv': Invalid argument
Next try to request largish amounts of cache, and note how those calls fail:
$ sudo modprobe hmcdrv cachesize=134217728
modprobe: ERROR: could not insert 'hmcdrv': Cannot allocate memory
$ sudo modprobe hmcdrv cachesize=67108864
modprobe: ERROR: could not insert 'hmcdrv': Cannot allocate memory
$ sudo modprobe hmcdrv cachesize=33554432
modprobe: ERROR: could not insert 'hmcdrv': Cannot allocate memory
$ sudo modprobe hmcdrv cachesize=16777216
modprobe: ERROR: could not insert 'hmcdrv': Cannot allocate memory
$ sudo modprobe hmcdrv cachesize=8388608
modprobe: ERROR: could not insert 'hmcdrv': Cannot allocate memory
$ sudo modprobe hmcdrv cachesize=4194304
modprobe: ERROR: could not insert 'hmcdrv': Cannot allocate memory
$ sudo modprobe hmcdrv cachesize=2097152
modprobe: ERROR: could not insert 'hmcdrv': Cannot allocate memory
$ sudo modprobe hmcdrv cachesize=2097152
modprobe: ERROR: could not insert 'hmcdrv': Cannot allocate memory
# 1MiB + 2048 bytes
$ sudo modprobe hmcdrv cachesize=1050624
modprobe: ERROR: could not insert 'hmcdrv': Cannot allocate memory
$ sudo modprobe hmcdrv cachesize=1048576
$ echo $?
0
The LPAR in question is configured with 2000MB of storage
(RAM/memory), thus imho should be able to handle more than 1MiB
cachesize, when there are more than 900MiB of free storage:
$ free -h
total used free shared buff/cache
available
Mem: 1.7Gi 348Mi 913Mi 0.0Ki 459Mi
1.3Gi
Swap: 1.9Gi 0B 1.9Gi
Is 1MiB some kind of a cachesize limit of the hmcdrv module? Can it be fixed
and/or bumped to be unlimited? I'm looking forward to be able to use a 1GiB
cachesize.
---
ProblemType: Bug
AlsaDevices: Error: command ['ls', '-l', '/dev/snd/'] failed with exit code
2: ls: cannot access '/dev/snd/': No such file or directory
AplayDevices: Error: [Errno 2] No such file or directory: 'aplay': 'aplay'
ApportVersion: 2.20.10-0ubuntu14
Architecture: s390x
ArecordDevices: Error: [Errno 2] No such file or directory: 'arecord':
'arecord'
CRDA: Error: command ['iw', 'reg', 'get'] failed with exit code 1: nl80211
not found.
DistroRelease: Ubuntu 19.04
IwConfig: Error: [Errno 2] No such file or directory: 'iwconfig': 'iwconfig'
Lsusb: Error: command ['lsusb'] failed with exit code 1:
Package: linux (not installed)
PciMultimedia:
ProcEnviron:
TERM=xterm-256color
PATH=(custom, no user)
XDG_RUNTIME_DIR=<set>
LANG=C
SHELL=/bin/bash
ProcFB: Error: [Errno 2] No such file or directory: '/proc/fb'
ProcKernelCmdLine: root=UUID=0972d5df-b2f2-499e-a787-9fb90b7ebf00
crashkernel=256M break=bottom BOOT_IMAGE=1
ProcVersionSignature: Ubuntu 4.18.0-11.12-generic 4.18.12
RelatedPackageVersions:
linux-restricted-modules-4.18.0-11-generic N/A
linux-backports-modules-4.18.0-11-generic N/A
linux-firmware 1.176
RfKill: Error: [Errno 2] No such file or directory: 'rfkill': 'rfkill'
Tags: disco
Uname: Linux 4.18.0-11-generic s390x
UpgradeStatus: Upgraded to disco on 2018-11-20 (10 days ago)
UserGroups: adm cdrom cpacfstats dip kvm libvirt lpadmin lxd plugdev
sambashare sbuild sudo
_MarkForUpload: True
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1806115/+subscriptions
--
Mailing list: https://launchpad.net/~kernel-packages
Post to : [email protected]
Unsubscribe : https://launchpad.net/~kernel-packages
More help : https://help.launchpad.net/ListHelp