2018-06-08 07:17:04

by Mike Galbraith

[permalink] [raw]
Subject: regression: "95cde3c59966 debugfs: inode: debugfs_create_dir uses mode permission from parent" terminally annoys libvirt

Greetings,

$subject bisected and verified via revert. Box is garden variety
i4790, distro is openSUSE Leap 15.0.

Error starting domain: internal error: process exited while connecting to monitor: ioctl(KVM_CREATE_VM) failed: 12 Cannot allocate memory
2018-06-08T03:18:00.453006Z qemu-system-x86_64: failed to initialize KVM: Cannot allocate memory

Traceback (most recent call last):
File "/usr/share/virt-manager/virtManager/asyncjob.py", line 89, in cb_wrapper
callback(asyncjob, *args, **kwargs)
File "/usr/share/virt-manager/virtManager/asyncjob.py", line 125, in tmpcb
callback(*args, **kwargs)
File "/usr/share/virt-manager/virtManager/libvirtobject.py", line 82, in newfn
ret = fn(self, *args, **kwargs)
File "/usr/share/virt-manager/virtManager/domain.py", line 1508, in startup
self._backend.create()
File "/usr/lib64/python3.6/site-packages/libvirt.py", line 1069, in create
if ret == -1: raise libvirtError ('virDomainCreate() failed', dom=self)
libvirt.libvirtError: internal error: process exited while connecting to monitor: ioctl(KVM_CREATE_VM) failed: 12 Cannot allocate memory
2018-06-08T03:18:00.453006Z qemu-system-x86_64: failed to initialize KVM: Cannot allocate memory

95cde3c59966f6371b6bcd9e4e2da2ba64ee9775 is the first bad commit
commit 95cde3c59966f6371b6bcd9e4e2da2ba64ee9775
Author: Thomas Richter <[email protected]>
Date: Fri Apr 27 14:35:47 2018 +0200

debugfs: inode: debugfs_create_dir uses mode permission from parent

git bisect start
# good: [29dcea88779c856c7dc92040a0c01233263101d4] Linux 4.17
git bisect good 29dcea88779c856c7dc92040a0c01233263101d4
# bad: [ba1b7309fc2e909a5828c36a7cd187e5d7df6f53] Merge branch 'next-smack' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security
git bisect bad ba1b7309fc2e909a5828c36a7cd187e5d7df6f53
# bad: [135c5504a600ff9b06e321694fbcac78a9530cd4] Merge tag 'drm-next-2018-06-06-1' of git://anongit.freedesktop.org/drm/drm
git bisect bad 135c5504a600ff9b06e321694fbcac78a9530cd4
# good: [5231804cf9e584f3e7e763a0d6d2fffe011c1bce] Merge tag 'leds_for_4.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds
git bisect good 5231804cf9e584f3e7e763a0d6d2fffe011c1bce
# good: [315852b422972e6ebb1dfddaadada09e46a2681a] drm: rcar-du: Fix build failure
git bisect good 315852b422972e6ebb1dfddaadada09e46a2681a
# bad: [ec064d3c6b40697fd72f4b1eeabbf293b7947a04] Merge tag 'driver-core-4.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
git bisect bad ec064d3c6b40697fd72f4b1eeabbf293b7947a04
# good: [a941fc3957113df977e7396c2cf1679e87a65555] USB: typec: tcpm: no need to check return value of debugfs_create_dir()
git bisect good a941fc3957113df977e7396c2cf1679e87a65555
# good: [07c4dd3435aa387d3b58f4e941dc516513f14507] Merge tag 'usb-4.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
git bisect good 07c4dd3435aa387d3b58f4e941dc516513f14507
# good: [e55077307d6f7ce86f9a468408fa5613c4a5cb5d] nvmem: meson-efuse: add write support
git bisect good e55077307d6f7ce86f9a468408fa5613c4a5cb5d
# good: [fdff4053d51be4850185aa895813405decd6e956] fpga: clarify that unregister functions also free
git bisect good fdff4053d51be4850185aa895813405decd6e956
# good: [1bc4d68b06ab913d392c8ad6481b9729bd58b8d5] ath10k: re-enable the firmware fallback mechanism for testmode
git bisect good 1bc4d68b06ab913d392c8ad6481b9729bd58b8d5
# bad: [085aa2de568493d7cde52126512d37260077811a] mm: memory_hotplug: use put_device() if device_register fail
git bisect bad 085aa2de568493d7cde52126512d37260077811a
# good: [f0a462970ee19930518b03798a21cfdb3fd35877] Documentation: clarify firmware_class provenance and why we can't rename the module
git bisect good f0a462970ee19930518b03798a21cfdb3fd35877
# bad: [95cde3c59966f6371b6bcd9e4e2da2ba64ee9775] debugfs: inode: debugfs_create_dir uses mode permission from parent
git bisect bad 95cde3c59966f6371b6bcd9e4e2da2ba64ee9775
# good: [964f8363a1aba6cb4198bfaaac538b08f1c538f1] debugfs: Re-use kstrtobool_from_user()
git bisect good 964f8363a1aba6cb4198bfaaac538b08f1c538f1
# first bad commit: [95cde3c59966f6371b6bcd9e4e2da2ba64ee9775] debugfs: inode: debugfs_create_dir uses mode permission from parent



2018-06-08 12:14:49

by Thomas Richter

[permalink] [raw]
Subject: Re: regression: "95cde3c59966 debugfs: inode: debugfs_create_dir uses mode permission from parent" terminally annoys libvirt

On 06/08/2018 09:16 AM, Mike Galbraith wrote:
> Greetings,
>
> $subject bisected and verified via revert. Box is garden variety
> i4790, distro is openSUSE Leap 15.0.
>
> Error starting domain: internal error: process exited while connecting to monitor: ioctl(KVM_CREATE_VM) failed: 12 Cannot allocate memory
> 2018-06-08T03:18:00.453006Z qemu-system-x86_64: failed to initialize KVM: Cannot allocate memory
>
> Traceback (most recent call last):
> File "/usr/share/virt-manager/virtManager/asyncjob.py", line 89, in cb_wrapper
> callback(asyncjob, *args, **kwargs)
> File "/usr/share/virt-manager/virtManager/asyncjob.py", line 125, in tmpcb
> callback(*args, **kwargs)
> File "/usr/share/virt-manager/virtManager/libvirtobject.py", line 82, in newfn
> ret = fn(self, *args, **kwargs)
> File "/usr/share/virt-manager/virtManager/domain.py", line 1508, in startup
> self._backend.create()
> File "/usr/lib64/python3.6/site-packages/libvirt.py", line 1069, in create
> if ret == -1: raise libvirtError ('virDomainCreate() failed', dom=self)
> libvirt.libvirtError: internal error: process exited while connecting to monitor: ioctl(KVM_CREATE_VM) failed: 12 Cannot allocate memory
> 2018-06-08T03:18:00.453006Z qemu-system-x86_64: failed to initialize KVM: Cannot allocate memory
>
> 95cde3c59966f6371b6bcd9e4e2da2ba64ee9775 is the first bad commit
> commit 95cde3c59966f6371b6bcd9e4e2da2ba64ee9775
> Author: Thomas Richter <[email protected]>
> Date: Fri Apr 27 14:35:47 2018 +0200
>
> debugfs: inode: debugfs_create_dir uses mode permission from parent
>
...

Hi,

that patch does not allocate any memory, it just sets permission on newly
created subdirectories in /sys/kernel/debug.
I do not know what ioctl(KVM_CREATE_VM) does, but maybe requires permissions
for group and others in that directory.

Best thing is to revert this patch.

--
Thomas Richter, Dept 3303, IBM s390 Linux Development, Boeblingen, Germany
--
Vorsitzende des Aufsichtsrats: Martina Koederitz
Gesch?ftsf?hrung: Dirk Wittkopp
Sitz der Gesellschaft: B?blingen / Registergericht: Amtsgericht Stuttgart, HRB 243294


2018-06-10 07:11:03

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: regression: "95cde3c59966 debugfs: inode: debugfs_create_dir uses mode permission from parent" terminally annoys libvirt

On Fri, Jun 08, 2018 at 02:13:57PM +0200, Thomas-Mich Richter wrote:
> On 06/08/2018 09:16 AM, Mike Galbraith wrote:
> > Greetings,
> >
> > $subject bisected and verified via revert. Box is garden variety
> > i4790, distro is openSUSE Leap 15.0.
> >
> > Error starting domain: internal error: process exited while connecting to monitor: ioctl(KVM_CREATE_VM) failed: 12 Cannot allocate memory
> > 2018-06-08T03:18:00.453006Z qemu-system-x86_64: failed to initialize KVM: Cannot allocate memory
> >
> > Traceback (most recent call last):
> > File "/usr/share/virt-manager/virtManager/asyncjob.py", line 89, in cb_wrapper
> > callback(asyncjob, *args, **kwargs)
> > File "/usr/share/virt-manager/virtManager/asyncjob.py", line 125, in tmpcb
> > callback(*args, **kwargs)
> > File "/usr/share/virt-manager/virtManager/libvirtobject.py", line 82, in newfn
> > ret = fn(self, *args, **kwargs)
> > File "/usr/share/virt-manager/virtManager/domain.py", line 1508, in startup
> > self._backend.create()
> > File "/usr/lib64/python3.6/site-packages/libvirt.py", line 1069, in create
> > if ret == -1: raise libvirtError ('virDomainCreate() failed', dom=self)
> > libvirt.libvirtError: internal error: process exited while connecting to monitor: ioctl(KVM_CREATE_VM) failed: 12 Cannot allocate memory
> > 2018-06-08T03:18:00.453006Z qemu-system-x86_64: failed to initialize KVM: Cannot allocate memory
> >
> > 95cde3c59966f6371b6bcd9e4e2da2ba64ee9775 is the first bad commit
> > commit 95cde3c59966f6371b6bcd9e4e2da2ba64ee9775
> > Author: Thomas Richter <[email protected]>
> > Date: Fri Apr 27 14:35:47 2018 +0200
> >
> > debugfs: inode: debugfs_create_dir uses mode permission from parent
> >
> ...
>
> Hi,
>
> that patch does not allocate any memory, it just sets permission on newly
> created subdirectories in /sys/kernel/debug.
> I do not know what ioctl(KVM_CREATE_VM) does, but maybe requires permissions
> for group and others in that directory.
>
> Best thing is to revert this patch.

Can you send me the revert so I can queue it up once 4.18-rc1 is out?

thanks,

greg k-h