mbox series

[PATCHv4,0/5] scsi: use xarray for devices and targets

Message ID 20200529134730.146573-1-hare@suse.de (mailing list archive)
Headers show
Series scsi: use xarray for devices and targets | expand

Message

Hannes Reinecke May 29, 2020, 1:47 p.m. UTC
Hi all,

based on the ideas from Doug Gilbert here's now my take on using
xarrays for devices and targets.
It revolves around two ideas:

 - The scsi target 'channel' and 'id' numbers are never ever used
   to the full 32 bit range; channels are well below 10, and no
   driver is using more than 16 bits for the id. So we can reduce
   the type of 'channel' and 'id' to 16 bits, and use the 32 bit
   value 'channel << 16 | id' as the index into the target xarray.
 - Most SCSI targets are only using the first 32 bits of the 64 bit
   LUN structure. So there we can use the LUN number as the index into
   the xarray; larger LUN numbers won't fit, so we'll allocate a
   separate index for those. For these device lookup won't be as
   efficient, but one can argue that we're running into scalability
   issues long before that.

With these changes we can implement an efficient lookup mechanism,
devolving into direct lookup for most cases.
And iteration over devices should be as efficient as the current,
list-based, approach.

It also removes the current duality between host-based and
target-based device lists; now all devices are listed per target,
and a full iteration would need to iterate first over all targets
and then over all devices per target.

As usual, comments and reviews are welcome

Changes to v1:
- Fixup __scsi_iterate_devices()
- Include reviews from Johannes
- Minor fixes
- Include comments from Doug

Changes to v2:
- Reshuffle hunks as per suggestion from Johannes

Changes to v3:
- Use GFP_ATOMIC instead of GFP_KERNEL
- Fixup target iteration as reported by Doug Gilbert
- Update scsi_error to make use of the new iterators

Hannes Reinecke (5):
  scsi: convert target lookup to xarray
  target_core_pscsi: use __scsi_device_lookup()
  scsi: move target device list to xarray
  scsi: remove direct device lookup per host
  scsi_error: use xarray lookup instead of wrappers

 drivers/scsi/hosts.c               |   4 +-
 drivers/scsi/scsi.c                | 151 +++++++++++++++++++++++++++++--------
 drivers/scsi/scsi_error.c          |  35 +++++----
 drivers/scsi/scsi_lib.c            |   9 +--
 drivers/scsi/scsi_priv.h           |   2 +
 drivers/scsi/scsi_scan.c           |  73 +++++++++---------
 drivers/scsi/scsi_sysfs.c          |  48 ++++++++----
 drivers/target/target_core_pscsi.c |   8 +-
 include/scsi/scsi_device.h         |  32 +++++---
 include/scsi/scsi_host.h           |   5 +-
 10 files changed, 243 insertions(+), 124 deletions(-)

Comments

Douglas Gilbert May 29, 2020, 8:53 p.m. UTC | #1
On 2020-05-29 9:47 a.m., Hannes Reinecke wrote:
> Hi all,
> 
> based on the ideas from Doug Gilbert here's now my take on using
> xarrays for devices and targets.
> It revolves around two ideas:
> 
>   - The scsi target 'channel' and 'id' numbers are never ever used
>     to the full 32 bit range; channels are well below 10, and no
>     driver is using more than 16 bits for the id. So we can reduce
>     the type of 'channel' and 'id' to 16 bits, and use the 32 bit
>     value 'channel << 16 | id' as the index into the target xarray.
>   - Most SCSI targets are only using the first 32 bits of the 64 bit
>     LUN structure. So there we can use the LUN number as the index into
>     the xarray; larger LUN numbers won't fit, so we'll allocate a
>     separate index for those. For these device lookup won't be as
>     efficient, but one can argue that we're running into scalability
>     issues long before that.
> 
> With these changes we can implement an efficient lookup mechanism,
> devolving into direct lookup for most cases.
> And iteration over devices should be as efficient as the current,
> list-based, approach.
> 
> It also removes the current duality between host-based and
> target-based device lists; now all devices are listed per target,
> and a full iteration would need to iterate first over all targets
> and then over all devices per target.
> 
> As usual, comments and reviews are welcome
> 
> Changes to v1:
> - Fixup __scsi_iterate_devices()
> - Include reviews from Johannes
> - Minor fixes
> - Include comments from Doug
> 
> Changes to v2:
> - Reshuffle hunks as per suggestion from Johannes
> 
> Changes to v3:
> - Use GFP_ATOMIC instead of GFP_KERNEL
> - Fixup target iteration as reported by Doug Gilbert
> - Update scsi_error to make use of the new iterators
> 
> Hannes Reinecke (5):
>    scsi: convert target lookup to xarray
>    target_core_pscsi: use __scsi_device_lookup()
>    scsi: move target device list to xarray
>    scsi: remove direct device lookup per host
>    scsi_error: use xarray lookup instead of wrappers
> 
>   drivers/scsi/hosts.c               |   4 +-
>   drivers/scsi/scsi.c                | 151 +++++++++++++++++++++++++++++--------
>   drivers/scsi/scsi_error.c          |  35 +++++----
>   drivers/scsi/scsi_lib.c            |   9 +--
>   drivers/scsi/scsi_priv.h           |   2 +
>   drivers/scsi/scsi_scan.c           |  73 +++++++++---------
>   drivers/scsi/scsi_sysfs.c          |  48 ++++++++----
>   drivers/target/target_core_pscsi.c |   8 +-
>   include/scsi/scsi_device.h         |  32 +++++---
>   include/scsi/scsi_host.h           |   5 +-
>   10 files changed, 243 insertions(+), 124 deletions(-)
> 

Hannes,
I'm pretty sure this one was happening yesterday, around about the same
number of sdev_s (i.e. sg791). The missing 0:0:1:0, 0:0:2:0, etc
distracted me. That is now fixed. See attached.

It was executing an rmmod at the time in the tst_sdebug_modpr_rmmod.sh
script. Just checked my logs from yesterday. It blew up at the same spot
in the code (but after /dev/sg971):

...
2020-05-28T20:44:31.543998-04:00 xtwo70 kernel: scsi 11:0:8:8: Attached scsi 
generic sg969 type 9
2020-05-28T20:44:31.545999-04:00 xtwo70 kernel: scsi 11:0:8:9: Attached scsi 
generic sg970 type 9
2020-05-28T20:44:31.558008-04:00 xtwo70 kernel: scsi 11:0:8:10: Attached scsi 
generic sg971 type 9
2020-05-28T20:44:45.660126-04:00 xtwo70 kernel: [UFW BLOCK] IN=enp0s31f6 OUT= 
MAC=54:e1:ad:36:d8:55:00:15:99:30:1d:2b:08:00 SRC=192.168.48.94 
DST=192.168.48.23 LEN=224 TOS=0x00 PREC=0x00 TTL=64 ID=34650 PROTO=UDP SPT=161 
DPT=48409 LEN=204
2020-05-28T20:44:45.692021-04:00 xtwo70 kernel: [UFW BLOCK] IN=enp0s31f6 OUT= 
MAC=54:e1:ad:36:d8:55:00:15:99:e9:97:99:08:00 SRC=192.168.48.55 
DST=192.168.48.23 LEN=258 TOS=0x00 PREC=0x00 TTL=64 ID=60034 PROTO=UDP SPT=161 
DPT=48409 LEN=238
2020-05-28T20:44:46.660191-04:00 xtwo70 kernel: [UFW BLOCK] IN=enp0s31f6 OUT= 
MAC=54:e1:ad:36:d8:55:00:15:99:e9:97:99:08:00 SRC=192.168.48.55 
DST=192.168.48.23 LEN=258 TOS=0x00 PREC=0x00 TTL=64 ID=60290 PROTO=UDP SPT=161 
DPT=48409 LEN=238
2020-05-28T20:44:46.660273-04:00 xtwo70 kernel: [UFW BLOCK] IN=enp0s31f6 OUT= 
MAC=54:e1:ad:36:d8:55:00:15:99:30:1d:2b:08:00 SRC=192.168.48.94 
DST=192.168.48.23 LEN=224 TOS=0x00 PREC=0x00 TTL=64 ID=34651 PROTO=UDP SPT=161 
DPT=48409 LEN=204
2020-05-28T20:46:46.306581-04:00 xtwo70 systemd-resolved[1953]: Server returned 
error NXDOMAIN, mitigating potential DNS violation DVE-2018-0001, retrying 
transaction with reduced feature level UDP.
2020-05-28T20:47:05.776485-04:00 xtwo70 kernel: BUG: unable to handle page fault 
for address: ffff8881327c6868
2020-05-28T20:47:05.776504-04:00 xtwo70 kernel: #PF: supervisor read access in 
kernel mode
2020-05-28T20:47:05.776506-04:00 xtwo70 kernel: #PF: error_code(0x0000) - 
not-present page
2020-05-28T20:47:05.776507-04:00 xtwo70 kernel: PGD 3c01067 P4D 3c01067 PUD 
22f031067 PMD 22ee9d067 PTE 800ffffecd839060
2020-05-28T20:47:05.776509-04:00 xtwo70 kernel: Oops: 0000 [#1] PREEMPT SMP 
DEBUG_PAGEALLOC PTI
2020-05-28T20:47:05.776510-04:00 xtwo70 kernel: CPU: 2 PID: 4647 Comm: rmmod Not 
tainted 5.7.0-rc1+ #74
2020-05-28T20:47:05.776511-04:00 xtwo70 kernel: Hardware name: LENOVO 
20K5S27Q02/20K5S27Q02, BIOS R0IET60W (1.38 ) 12/19/2019
2020-05-28T20:47:05.776512-04:00 xtwo70 kernel: RIP: 0010:xas_start+0x2a/0x1c0
2020-05-28T20:47:05.776513-04:00 xtwo70 kernel: Code: 41 55 41 54 55 53 48 8b 47 
18 48 89 fb 48 89 c2 83 e2 03 0f 84 8d 00 00 00 48 3d 05 c0 ff ff 76 06 48 83 fa 
02 74 50 4c 8b 2b <49> 8b 6d 50 e8 fd 2f c2 ff 85 c0 49 89 ec 74 0d 80 3d ef f0 
e4 00
2020-05-28T20:47:05.776514-04:00 xtwo70 kernel: RSP: 0000:ffffc900005bbc90 
EFLAGS: 00010013
2020-05-28T20:47:05.776514-04:00 xtwo70 kernel: RAX: 0000000000000003 RBX: 
ffffc900005bbd00 RCX: 00000000ceb8764a
2020-05-28T20:47:05.776515-04:00 xtwo70 kernel: RDX: 0000000000000003 RSI: 
ffffffffffffffff RDI: ffffc900005bbd00
2020-05-28T20:47:05.776516-04:00 xtwo70 kernel: RBP: ffffc900005bbd00 R08: 
000000008830cd27 R09: 0000000000000001
2020-05-28T20:47:05.776517-04:00 xtwo70 kernel: R10: 0000000000000001 R11: 
0000000000000003 R12: 0000000000000003
2020-05-28T20:47:05.776518-04:00 xtwo70 kernel: R13: ffff8881327c6818 R14: 
0000000000000040 R15: ffff88814020f020
2020-05-28T20:47:05.776519-04:00 xtwo70 kernel: FS:  00007f1361c6f540(0000) 
GS:ffff888226000000(0000) knlGS:0000000000000000
2020-05-28T20:47:05.776520-04:00 xtwo70 kernel: CS:  0010 DS: 0000 ES: 0000 CR0: 
0000000080050033
2020-05-28T20:47:05.776521-04:00 xtwo70 kernel: CR2: ffff8881327c6868 CR3: 
000000012f48e003 CR4: 00000000003606e0
2020-05-28T20:47:05.776522-04:00 xtwo70 kernel: Call Trace:
2020-05-28T20:47:05.776523-04:00 xtwo70 kernel: xas_load+0xa/0x50
2020-05-28T20:47:05.776524-04:00 xtwo70 kernel: xas_find+0x274/0x2c0
2020-05-28T20:47:05.776525-04:00 xtwo70 kernel: xa_find_after+0x163/0x1f0
2020-05-28T20:47:05.776526-04:00 xtwo70 kernel: scsi_forget_host+0xd2/0x129
2020-05-28T20:47:05.776527-04:00 xtwo70 kernel: scsi_remove_host+0x78/0x120
2020-05-28T20:47:05.776528-04:00 xtwo70 kernel: sdebug_driver_remove+0x3b/0x90 
[scsi_debug]
2020-05-28T20:47:05.776528-04:00 xtwo70 kernel: 
device_release_driver_internal+0xdf/0x1c0
2020-05-28T20:47:05.776529-04:00 xtwo70 kernel: bus_remove_device+0xe4/0x120
2020-05-28T20:47:05.776530-04:00 xtwo70 kernel: device_del+0x174/0x3c0
2020-05-28T20:47:05.776531-04:00 xtwo70 kernel: device_unregister+0x9/0x20
2020-05-28T20:47:05.776532-04:00 xtwo70 kernel: sdebug_do_remove_host+0xc0/0xe0 
[scsi_debug]
2020-05-28T20:47:05.776533-04:00 xtwo70 kernel: scsi_debug_exit+0x21/0xc5b 
[scsi_debug]
2020-05-28T20:47:05.776534-04:00 xtwo70 kernel: __x64_sys_delete_module+0x18f/0x230
2020-05-28T20:47:05.776535-04:00 xtwo70 kernel: ? lockdep_hardirqs_off+0x79/0xd0
2020-05-28T20:47:05.776537-04:00 xtwo70 kernel: ? trace_hardirqs_off_thunk+0x1a/0x1c
2020-05-28T20:47:05.776538-04:00 xtwo70 kernel: do_syscall_64+0x4b/0x1c0
2020-05-28T20:47:05.776539-04:00 xtwo70 kernel: entry_SYSCALL_64_after_hw
2020-05-29T16:26:17.670996-04:00 xtwo70 kernel: scsi 11:0:5:10: Attached scsi generic sg791 type 9
2020-05-29T16:26:17.785102-04:00 xtwo70 kernel: scsi 0:0:0:0: Power-on or device reset occurred
2020-05-29T16:26:17.797144-04:00 xtwo70 kernel: scsi 0:0:0:1: Power-on or device reset occurred
2020-05-29T16:26:18.277606-04:00 xtwo70 kernel: BUG: unable to handle page fault for address: ffff88815c206868
2020-05-29T16:26:18.277633-04:00 xtwo70 kernel: #PF: supervisor read access in kernel mode
2020-05-29T16:26:18.277635-04:00 xtwo70 kernel: #PF: error_code(0x0000) - not-present page
2020-05-29T16:26:18.277640-04:00 xtwo70 kernel: PGD 3c01067 P4D 3c01067 PUD 22ee30067 PMD 22ed4e067 PTE 800ffffea3df9060
2020-05-29T16:26:18.277655-04:00 xtwo70 kernel: Oops: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC PTI
2020-05-29T16:26:18.277671-04:00 xtwo70 kernel: CPU: 0 PID: 6742 Comm: rmmod Not tainted 5.7.0-rc1+ #75
2020-05-29T16:26:18.277672-04:00 xtwo70 kernel: Hardware name: LENOVO 20K5S27Q02/20K5S27Q02, BIOS R0IET61W (1.39 ) 04/20/2020
2020-05-29T16:26:18.277673-04:00 xtwo70 kernel: RIP: 0010:xas_start+0x2a/0x1c0
2020-05-29T16:26:18.277674-04:00 xtwo70 kernel: Code: 41 55 41 54 55 53 48 8b 47 18 48 89 fb 48 89 c2 83 e2 03 0f 84 8d 00 00 00 48 3d 05 c0 ff ff 76 06 48 83 fa 02 74 50 4c 8b 2b <49> 8b 6d 50 e8 fd 2f c2 ff 85 c0 49 89 ec 74 0d 80 3d ef f0 e4 00
2020-05-29T16:26:18.277675-04:00 xtwo70 kernel: RSP: 0018:ffffc900019dfc90 EFLAGS: 00010013
2020-05-29T16:26:18.277676-04:00 xtwo70 kernel: RAX: 0000000000000003 RBX: ffffc900019dfd00 RCX: 000000004a27657b
2020-05-29T16:26:18.277676-04:00 xtwo70 kernel: RDX: 0000000000000003 RSI: ffffffffffffffff RDI: ffffc900019dfd00
2020-05-29T16:26:18.277677-04:00 xtwo70 kernel: RBP: ffffc900019dfd00 R08: 000000001877b6b6 R09: 0000000000000001
2020-05-29T16:26:18.277679-04:00 xtwo70 kernel: R10: 0000000000000001 R11: 0000000000000003 R12: 0000000000000003
2020-05-29T16:26:18.277679-04:00 xtwo70 kernel: R13: ffff88815c206818 R14: 0000000000000040 R15: ffff88815af54020
2020-05-29T16:26:18.277680-04:00 xtwo70 kernel: FS:  00007fbfbb58b540(0000) GS:ffff888225800000(0000) knlGS:0000000000000000
2020-05-29T16:26:18.277681-04:00 xtwo70 kernel: CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
2020-05-29T16:26:18.277681-04:00 xtwo70 kernel: CR2: ffff88815c206868 CR3: 0000000141a5a006 CR4: 00000000003606f0
2020-05-29T16:26:18.277682-04:00 xtwo70 kernel: Call Trace:
2020-05-29T16:26:18.277683-04:00 xtwo70 kernel: xas_load+0xa/0x50
2020-05-29T16:26:18.277683-04:00 xtwo70 kernel: xas_find+0x274/0x2c0
2020-05-29T16:26:18.277684-04:00 xtwo70 kernel: xa_find_after+0x163/0x1f0
2020-05-29T16:26:18.277689-04:00 xtwo70 kernel: scsi_forget_host+0xd2/0x129
2020-05-29T16:26:18.277690-04:00 xtwo70 kernel: scsi_remove_host+0x79/0x120
2020-05-29T16:26:18.277693-04:00 xtwo70 kernel: sdebug_driver_remove+0x3b/0xa0 [scsi_debug]
2020-05-29T16:26:18.277694-04:00 xtwo70 kernel: device_release_driver_internal+0xdf/0x1c0
2020-05-29T16:26:18.277696-04:00 xtwo70 kernel: bus_remove_device+0xe4/0x120
2020-05-29T16:26:18.277697-04:00 xtwo70 kernel: device_del+0x174/0x3c0
2020-05-29T16:26:18.277700-04:00 xtwo70 kernel: device_unregister+0x9/0x20
2020-05-29T16:26:18.277700-04:00 xtwo70 kernel: sdebug_do_remove_host+0xc0/0xe0 [scsi_debug]
2020-05-29T16:26:18.277701-04:00 xtwo70 kernel: scsi_debug_exit+0x21/0xa87 [scsi_debug]
2020-05-29T16:26:18.277706-04:00 xtwo70 kernel: __x64_sys_delete_module+0x18f/0x230
2020-05-29T16:26:18.277712-04:00 xtwo70 kernel: ? lockdep_hardirqs_off+0x79/0xd0
2020-05-29T16:26:18.277715-04:00 xtwo70 kernel: ? trace_hardirqs_off_thunk+0x1a/0x1c
2020-05-29T16:26:18.277721-04:00 xtwo70 kernel: do_syscall_64+0x4b/0x1c0
2020-05-29T16:26:18.277725-04:00 xtwo70 kernel: entry_SYSCALL_64_after_hwframe+0x49/0xb3
2020-05-29T16:26:18.277728-04:00 xtwo70 kernel: RIP: 0033:0x7fbfbb6d7a3b
2020-05-29T16:26:18.277732-04:00 xtwo70 kernel: Code: 73 01 c3 48 8b 0d 55 84 0c 00 f7 d8 64 89 01 48 83 c8 ff c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa b8 b0 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 25 84 0c 00 f7 d8 64 89 01 48
2020-05-29T16:26:18.277735-04:00 xtwo70 kernel: RSP: 002b:00007ffde231d9f8 EFLAGS: 00000206 ORIG_RAX: 00000000000000b0
2020-05-29T16:26:18.277736-04:00 xtwo70 kernel: RAX: ffffffffffffffda RBX: 0000559b8e31f750 RCX: 00007fbfbb6d7a3b
2020-05-29T16:26:18.277736-04:00 xtwo70 kernel: RDX: 000000000000000a RSI: 0000000000000800 RDI: 0000559b8e31f7b8
2020-05-29T16:26:18.277765-04:00 xtwo70 kernel: RBP: 00007ffde231da58 R08: 0000000000000000 R09: 0000000000000000
2020-05-29T16:26:18.277766-04:00 xtwo70 kernel: R10: 00007fbfbb753ac0 R11: 0000000000000206 R12: 00007ffde231dc30
2020-05-29T16:26:18.277767-04:00 xtwo70 kernel: R13: 00007ffde231e8b0 R14: 0000559b8e31f2a0 R15: 0000559b8e31f750
2020-05-29T16:26:18.277767-04:00 xtwo70 kernel: Modules linked in: scsi_debug(-) sg netconsole configfs rfcomm hid_generic hidp hid fuse intel_rapl_msr cmac af_alg bnep iwlmvm intel_rapl_common mac80211 x86_pkg_temp_thermal intel_powerclamp coretemp kvm_intel snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic libarc4 iwlwifi kvm snd_seq_dummy snd_seq_oss i915 snd_seq_midi snd_rawmidi snd_seq_midi_event irqbypass crct10dif_pclmul snd_seq ghash_clmulni_intel snd_hda_intel cfg80211 aesni_intel efi_pstore snd_intel_dspcfg crypto_simd snd_hda_codec snd_hwdep snd_hda_core btusb btrtl cryptd btbcm btintel bluetooth glue_helper nls_iso8859_1 nls_cp437 vfat intel_cstate fat drm_kms_helper intel_uncore ti_usb_3410_5052 mei_me usbserial snd_pcm mmc_block input_leds joydev intel_rapl_perf thinkpad_acpi mousedev mei ecdh_generic serio_raw syscopyarea ecc efivars nvram sysfillrect snd_seq_device ledtrig_audio sysimgblt fb_sys_fops snd_timer intel_gtt intel_xhci_usb_role_switch i2c_algo_bit roles intel_pch_thermal snd soundcore
2020-05-29T16:26:18.277769-04:00 xtwo70 kernel: rfkill evdev video mac_hid nf_log_ipv6 ip6t_REJECT nf_reject_ipv6 xt_hl ip6t_rt nf_log_ipv4 nf_log_common ipt_REJECT nf_reject_ipv4 xt_LOG xt_limit xt_addrtype xt_tcpudp xt_conntrack nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 libcrc32c drm ip6table_filter ip6_tables parport_pc ppdev iptable_filter lp parport drm_panel_orientation_quirks agpgart efivarfs ip_tables x_tables autofs4 rtsx_pci_sdmmc mmc_core xhci_pci xhci_hcd usbcore e1000e nvme i2c_i801 intel_lpss_pci nvme_core intel_lpss rtsx_pci idma64 crc32_pclmul virt_dma usb_common [last unloaded: scsi_debug]
2020-05-29T16:26:18.277770-04:00 xtwo70 kernel: CR2: ffff88815c206868
2020-05-29T16:26:18.277770-04:00 xtwo70 kernel: ---[ end trace e67629a806869a64 ]---
2020-05-29T16:26:18.277771-04:00 xtwo70 kernel: RIP: 0010:xas_start+0x2a/0x1c0
2020-05-29T16:26:18.277771-04:00 xtwo70 kernel: Code: 41 55 41 54 55 53 48 8b 47 18 48 89 fb 48 89 c2 83 e2 03 0f 84 8d 00 00 00 48 3d 05 c0 ff ff 76 06 48 83 fa 02 74 50 4c 8b 2b <49> 8b 6d 50 e8 fd 2f c2 ff 85 c0 49 89 ec 74 0d 80 3d ef f0 e4 00
2020-05-29T16:26:18.277772-04:00 xtwo70 kernel: RSP: 0018:ffffc900019dfc90 EFLAGS: 00010013
2020-05-29T16:26:18.277772-04:00 xtwo70 kernel: RAX: 0000000000000003 RBX: ffffc900019dfd00 RCX: 000000004a27657b
2020-05-29T16:26:18.277773-04:00 xtwo70 kernel: RDX: 0000000000000003 RSI: ffffffffffffffff RDI: ffffc900019dfd00
2020-05-29T16:26:18.277774-04:00 xtwo70 kernel: RBP: ffffc900019dfd00 R08: 000000001877b6b6 R09: 0000000000000001
2020-05-29T16:26:18.277774-04:00 xtwo70 kernel: R10: 0000000000000001 R11: 0000000000000003 R12: 0000000000000003
2020-05-29T16:26:18.277775-04:00 xtwo70 kernel: R13: ffff88815c206818 R14: 0000000000000040 R15: ffff88815af54020
2020-05-29T16:26:18.277775-04:00 xtwo70 kernel: FS:  00007fbfbb58b540(0000) GS:ffff888225800000(0000) knlGS:0000000000000000
2020-05-29T16:26:18.277776-04:00 xtwo70 kernel: CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
2020-05-29T16:26:18.277777-04:00 xtwo70 kernel: CR2: ffff88815c206868 CR3: 0000000141a5a006 CR4: 00000000003606f0
2020-05-29T16:26:18.277777-04:00 xtwo70 kernel: BUG: sleeping function called from invalid context at include/linux/percpu-rwsem.h:49
2020-05-29T16:26:18.277778-04:00 xtwo70 kernel: in_atomic(): 1, irqs_disabled(): 1, non_block: 0, pid: 6742, name: rmmod
2020-05-29T16:26:18.277778-04:00 xtwo70 kernel: INFO: lockdep is turned off.
2020-05-29T16:26:18.277779-04:00 xtwo70 kernel: irq event stamp: 311538
2020-05-29T16:26:18.277780-04:00 xtwo70 kernel: hardirqs last  enabled at (311537): [<ffffffff8125d2d0>] kfree+0x1b0/0x310
2020-05-29T16:26:18.277780-04:00 xtwo70 kernel: hardirqs last disabled at (311538): [<ffffffff818b8be1>] _raw_spin_lock_irqsave+0x11/0x80
2020-05-29T16:26:18.277781-04:00 xtwo70 kernel: softirqs last  enabled at (310482): [<ffffffff81c0039d>] __do_softirq+0x39d/0x4a4
2020-05-29T16:26:18.277782-04:00 xtwo70 kernel: softirqs last disabled at (310473): [<ffffffff8106e7e7>] irq_exit+0xb7/0xd0
2020-05-29T16:26:18.277782-04:00 xtwo70 kernel: Preemption disabled at:
2020-05-29T16:26:18.277783-04:00 xtwo70 kernel: [<0000000000000000>] 0x0
2020-05-29T16:26:18.277784-04:00 xtwo70 kernel: CPU: 0 PID: 6742 Comm: rmmod Tainted: G      D           5.7.0-rc1+ #75
2020-05-29T16:26:18.277784-04:00 xtwo70 kernel: Hardware name: LENOVO 20K5S27Q02/20K5S27Q02, BIOS R0IET61W (1.39 ) 04/20/2020
2020-05-29T16:26:18.277785-04:00 xtwo70 kernel: Call Trace:
2020-05-29T16:26:18.277785-04:00 xtwo70 kernel: dump_stack+0x71/0xa0
2020-05-29T16:26:18.277786-04:00 xtwo70 kernel: ___might_sleep.cold+0xf7/0x10b
2020-05-29T16:26:18.277787-04:00 xtwo70 kernel: exit_signals+0x2b/0x390
2020-05-29T16:26:18.277787-04:00 xtwo70 kernel: do_exit+0xaf/0xb80
2020-05-29T16:26:18.277788-04:00 xtwo70 kernel: ? trace_hardirqs_off_thunk+0x1a/0x1c
2020-05-29T16:26:18.277789-04:00 xtwo70 kernel: rewind_stack_do_exit+0x17/0x20
2020-05-29T16:26:18.277789-04:00 xtwo70 kernel: note: rmmod[6742] exited with preempt_count 1
2020-05-29T16:26:22.525103-04:00 xtwo70 kernel: systemd[1]: systemd-journald-dev-log.socket: Failed to queue service startup job (Maybe the service file is missing or not a non-template unit?): Unit systemd-journald.service is masked.
2020-05-29T16:26:22.526520-04:00 xtwo70 kernel: systemd[1]: systemd-journald-dev-log.socket: Failed with result 'resources'.
2020-05-29T16:26:22.533056-04:00 xtwo70 kernel: systemd[1]: packagekit.service: Succeeded.