* Reading `/sys/kernel/debug/kmemleak` takes 3 s and content not shown
From: Paul Menzel @ 2019-02-19 9:44 UTC (permalink / raw)
To: Benjamin Herrenschmidt, Paul Mackerras, Michael Ellerman
Cc: linuxppc-dev, linux-kernel
[-- Attachment #1.1: Type: text/plain, Size: 4739 bytes --]
Dear Linux folks,
On a the IBM S822LC (8335-GTA) with Ubuntu 18.10, and Linux 5.0-rc5+
accessing `/sys/kernel/debug/kmemleak` takes a long time. According to
strace it takes three seconds.
```
$ sudo strace -tt -T cat /sys/kernel/debug/kmemleak
10:35:49.861641 execve("/bin/cat", ["cat", "/sys/kernel/debug/kmemleak"], 0x7ffffdbcb518 /* 16 vars */) = 0 <0.000293>
10:35:49.862112 brk(NULL) = 0x75b12a50000 <0.000012>
10:35:49.862190 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) <0.000015>
10:35:49.862261 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) <0.000015>
10:35:49.862324 openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 <0.000018>
10:35:49.862389 fstat(3, {st_mode=S_IFREG|0644, st_size=143482, ...}) = 0 <0.000011>
10:35:49.862444 mmap(NULL, 143482, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7ce4a1150000 <0.000017>
10:35:49.862501 close(3) = 0 <0.000011>
10:35:49.862550 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) <0.000015>
10:35:49.862615 openat(AT_FDCWD, "/lib/powerpc64le-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 <0.000019>
10:35:49.862676 read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0\25\0\1\0\0\0pN\2\0\0\0\0\0"..., 832) = 832 <0.000011>
10:35:49.862731 fstat(3, {st_mode=S_IFREG|0755, st_size=2310856, ...}) = 0 <0.000011>
10:35:49.862783 mmap(NULL, 2380672, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7ce4a0f00000 <0.000018>
10:35:49.862842 mprotect(0x7ce4a1120000, 65536, PROT_NONE) = 0 <0.000019>
10:35:49.862899 mmap(0x7ce4a1130000, 131072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x220000) = 0x7ce4a1130000 <0.000019>
10:35:49.862990 close(3) = 0 <0.000010>
10:35:49.863110 mprotect(0x7ce4a1130000, 65536, PROT_READ) = 0 <0.000017>
10:35:49.863192 mprotect(0x75ad43b0000, 65536, PROT_READ) = 0 <0.000016>
10:35:49.863252 mprotect(0x7ce4a11e0000, 65536, PROT_READ) = 0 <0.000015>
10:35:49.863305 munmap(0x7ce4a1150000, 143482) = 0 <0.000022>
10:35:49.863446 brk(NULL) = 0x75b12a50000 <0.000011>
10:35:49.863495 brk(0x75b12a80000) = 0x75b12a80000 <0.000014>
10:35:49.863561 openat(AT_FDCWD, "/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3 <0.000019>
10:35:49.863624 fstat(3, {st_mode=S_IFREG|0644, st_size=6035920, ...}) = 0 <0.000010>
10:35:49.863677 mmap(NULL, 6035920, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7ce4a0930000 <0.000017>
10:35:49.863736 close(3) = 0 <0.000011>
10:35:49.863828 fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0 <0.000010>
10:35:49.863881 openat(AT_FDCWD, "/sys/kernel/debug/kmemleak", O_RDONLY) = 3 <0.000034>
10:35:49.863956 fstat(3, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0 <0.000029>
10:35:49.864028 fadvise64(3, 0, 0, POSIX_FADV_SEQUENTIAL) = 0 <0.000011>
10:35:49.864076 mmap(NULL, 262144, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ce4a08f0000 <0.000017>
10:35:49.864146 read(3, "", 131072) = 0 <3.528503>
10:35:53.392797 munmap(0x7ce4a08f0000, 262144) = 0 <0.000092>
10:35:53.392957 close(3) = 0 <0.000029>
10:35:53.393038 close(1) = 0 <0.000010>
10:35:53.393078 close(2) = 0 <0.000009>
10:35:53.393123 exit_group(0) = ?
10:35:53.393280 +++ exited with 0 +++
$ uname -a
Linux flughafenberlinbrandenburgwillybrandt 5.0.0-rc5+ #1 SMP Thu Feb 7 11:23:11 CET 2019 ppc64le ppc64le ppc64le GNU/Linux
$ more /proc/version
Linux version 5.0.0-rc5+ (pmenzel@flughafenberlinbrandenburgwillybrandt) (gcc version 8.2.0 (Ubuntu 8.2.0-7ubuntu1)) #1 SMP Thu Feb 7 11:23:11 CET 2019
$ more /proc/cmdline
root=UUID=2c3dd738-785a-469b-843e-9f0ba8b47b0d ro rootflags=subvol=@ quiet splash
$ grep KMEMLEAK /boot/config-5.0.0-rc5+
CONFIG_HAVE_DEBUG_KMEMLEAK=y
CONFIG_DEBUG_KMEMLEAK=y
CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE=10000
# CONFIG_DEBUG_KMEMLEAK_TEST is not set
# CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF is not set
CONFIG_DEBUG_KMEMLEAK_AUTO_SCAN=y
$ grep KMEMLEAK /boot/config-4.18.0-rc4+
CONFIG_HAVE_DEBUG_KMEMLEAK=y
CONFIG_DEBUG_KMEMLEAK=y
CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE=10000
# CONFIG_DEBUG_KMEMLEAK_TEST is not set
# CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF is not set
$ dmesg | grep leak
[ 4.407957] kmemleak: Kernel memory leak detector initialized
[ 4.407959] kmemleak: Automatic memory scanning thread started
[745989.625624] kmemleak: 1 new suspected memory leaks (see /sys/kernel/debug/kmemleak)
[1002619.951902] kmemleak: 1 new suspected memory leaks (see /sys/kernel/debug/kmemleak)
```
Unfortunately, the leaks supposedly stored in that file are not shown
either.
Kind regards,
Paul
[-- Attachment #1.2: 20190219–linux-5.0-rc5+–messages.txt --]
[-- Type: text/plain, Size: 78023 bytes --]
[ 0.000000] hash-mmu: Page sizes from device-tree:
[ 0.000000] hash-mmu: base_shift=12: shift=12, sllp=0x0000, avpnm=0x00000000, tlbiel=1, penc=0
[ 0.000000] hash-mmu: base_shift=12: shift=16, sllp=0x0000, avpnm=0x00000000, tlbiel=1, penc=7
[ 0.000000] hash-mmu: base_shift=12: shift=24, sllp=0x0000, avpnm=0x00000000, tlbiel=1, penc=56
[ 0.000000] hash-mmu: base_shift=16: shift=16, sllp=0x0110, avpnm=0x00000000, tlbiel=1, penc=1
[ 0.000000] hash-mmu: base_shift=16: shift=24, sllp=0x0110, avpnm=0x00000000, tlbiel=1, penc=8
[ 0.000000] hash-mmu: base_shift=20: shift=20, sllp=0x0130, avpnm=0x00000000, tlbiel=0, penc=2
[ 0.000000] hash-mmu: base_shift=24: shift=24, sllp=0x0100, avpnm=0x00000001, tlbiel=0, penc=0
[ 0.000000] hash-mmu: base_shift=34: shift=34, sllp=0x0120, avpnm=0x000007ff, tlbiel=0, penc=3
[ 0.000000] Page orders: linear mapping = 24, virtual = 16, io = 16, vmemmap = 24
[ 0.000000] Using 1TB segments
[ 0.000000] hash-mmu: Initializing hash mmu with SLB
[ 0.000000] Linux version 5.0.0-rc5+ (pmenzel@flughafenberlinbrandenburgwillybrandt) (gcc version 8.2.0 (Ubuntu 8.2.0-7ubuntu1)) #1 SMP Thu Feb 7 11:23:11 CET 2019
[ 0.000000] Found initrd at 0xc000000003670000:0xc000000007498f84
[ 0.000000] OPAL: Found non-mapped LPC bus on chip 0
[ 0.000000] Using PowerNV machine description
[ 0.000000] printk: bootconsole [udbg0] enabled
[ 0.000000] CPU maps initialized for 8 threads per core
[ 0.000000] (thread shift is 3)
[ 0.000000] Allocated 5760 bytes for 160 pacas
[ 0.000000] -----------------------------------------------------
[ 0.000000] ppc64_pft_size = 0x0
[ 0.000000] phys_mem_size = 0x10000000000
[ 0.000000] dcache_bsize = 0x80
[ 0.000000] icache_bsize = 0x80
[ 0.000000] cpu_features = 0x000000ff8f5db1a7
[ 0.000000] possible = 0x0000fbffcf5fb1a7
[ 0.000000] always = 0x00000003800081a1
[ 0.000000] cpu_user_features = 0xdc0065c2 0xef000000
[ 0.000000] mmu_features = 0x7c006001
[ 0.000000] firmware_features = 0x0000000110000000
[ 0.000000] htab_address = 0x(____ptrval____)
[ 0.000000] htab_hash_mask = 0x7fffff
[ 0.000000] -----------------------------------------------------
[ 0.000000] cma: Reserved 52432 MiB at 0x000000f2b3000000
[ 0.000000] numa: NODE_DATA [mem 0x7fff95c980-0x7fff963fff]
[ 0.000000] numa: NODE_DATA [mem 0xffff080980-0xffff087fff]
[ 0.000000] Section 65534 and 65535 (node 8) have a circular dependency on usemap and pgdat allocations
[ 0.000000] rfi-flush: ori type flush available
[ 0.000000] rfi-flush: patched 9 locations (ori type flush)
[ 0.000000] count-cache-flush: software flush disabled.
[ 0.000000] stf-barrier: hwsync barrier available
[ 0.000000] stf-barrier: patched 61 entry locations (hwsync barrier)
[ 0.000000] stf-barrier: patched 9 exit locations (hwsync barrier)
[ 0.000000] Initializing IODA2 PHB (/pciex@3fffe40000000)
[ 0.000000] PCI host bridge /pciex@3fffe40000000 (primary) ranges:
[ 0.000000] MEM 0x00003fe000000000..0x00003fe07ffeffff -> 0x0000000080000000
[ 0.000000] MEM 0x0000200000000000..0x000020ffffffffff -> 0x0000200000000000 (M64 #0..15)
[ 0.000000] Using M64 #15 as default window
[ 0.000000] 256 (255) PE's M32: 0x80000000 [segment=0x800000]
[ 0.000000] M64: 0x10000000000 [segment=0x100000000]
[ 0.000000] Allocated bitmap for 2040 MSIs (base IRQ 0x800)
[ 0.000000] Initializing IODA2 PHB (/pciex@3fffe40100000)
[ 0.000000] PCI host bridge /pciex@3fffe40100000 ranges:
[ 0.000000] MEM 0x00003fe080000000..0x00003fe0fffeffff -> 0x0000000080000000
[ 0.000000] MEM 0x0000210000000000..0x000021ffffffffff -> 0x0000210000000000 (M64 #0..15)
[ 0.000000] Using M64 #15 as default window
[ 0.000000] 256 (255) PE's M32: 0x80000000 [segment=0x800000]
[ 0.000000] M64: 0x10000000000 [segment=0x100000000]
[ 0.000000] Allocated bitmap for 2040 MSIs (base IRQ 0x1000)
[ 0.000000] Initializing IODA2 PHB (/pciex@3fffe41000000)
[ 0.000000] PCI host bridge /pciex@3fffe41000000 ranges:
[ 0.000000] MEM 0x00003fe800000000..0x00003fe87ffeffff -> 0x0000000080000000
[ 0.000000] MEM 0x0000240000000000..0x000024ffffffffff -> 0x0000240000000000 (M64 #0..15)
[ 0.000000] Using M64 #15 as default window
[ 0.000000] 256 (255) PE's M32: 0x80000000 [segment=0x800000]
[ 0.000000] M64: 0x10000000000 [segment=0x100000000]
[ 0.000000] Allocated bitmap for 2040 MSIs (base IRQ 0x10800)
[ 0.000000] Initializing IODA2 PHB (/pciex@3fffe41100000)
[ 0.000000] PCI host bridge /pciex@3fffe41100000 ranges:
[ 0.000000] MEM 0x00003fe880000000..0x00003fe8fffeffff -> 0x0000000080000000
[ 0.000000] MEM 0x0000250000000000..0x000025ffffffffff -> 0x0000250000000000 (M64 #0..15)
[ 0.000000] Using M64 #15 as default window
[ 0.000000] 256 (255) PE's M32: 0x80000000 [segment=0x800000]
[ 0.000000] M64: 0x10000000000 [segment=0x100000000]
[ 0.000000] Allocated bitmap for 2040 MSIs (base IRQ 0x11000)
[ 0.000000] Initializing IODA2 PHB (/pciex@3fffe41200000)
[ 0.000000] PCI host bridge /pciex@3fffe41200000 ranges:
[ 0.000000] MEM 0x00003fe900000000..0x00003fe97ffeffff -> 0x0000000080000000
[ 0.000000] MEM 0x0000260000000000..0x000026ffffffffff -> 0x0000260000000000 (M64 #0..15)
[ 0.000000] Using M64 #15 as default window
[ 0.000000] 256 (255) PE's M32: 0x80000000 [segment=0x800000]
[ 0.000000] M64: 0x10000000000 [segment=0x100000000]
[ 0.000000] Allocated bitmap for 2040 MSIs (base IRQ 0x11800)
[ 0.000000] OPAL nvram setup, 589824 bytes
[ 0.000000] barrier-nospec: using ORI speculation barrier
[ 0.000000] barrier-nospec: patched 532 locations
[ 0.000000] Top of RAM: 0x10000000000, Total RAM: 0x10000000000
[ 0.000000] Memory hole size: 0MB
[ 0.000000] Zone ranges:
[ 0.000000] Normal [mem 0x0000000000000000-0x000000ffffffffff]
[ 0.000000] Device empty
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x0000000000000000-0x0000007fffffffff]
[ 0.000000] node 8: [mem 0x0000008000000000-0x000000ffffffffff]
[ 0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x0000007fffffffff]
[ 0.000000] On node 0 totalpages: 8388608
[ 0.000000] Normal zone: 8192 pages used for memmap
[ 0.000000] Normal zone: 0 pages reserved
[ 0.000000] Normal zone: 8388608 pages, LIFO batch:3
[ 0.000000] Initmem setup node 8 [mem 0x0000008000000000-0x000000ffffffffff]
[ 0.000000] On node 8 totalpages: 8388608
[ 0.000000] Normal zone: 8192 pages used for memmap
[ 0.000000] Normal zone: 0 pages reserved
[ 0.000000] Normal zone: 8388608 pages, LIFO batch:3
[ 0.000000] random: get_random_u64 called from start_kernel+0xbc/0x6b8 with crng_init=0
[ 0.000000] percpu: Embedded 4 pages/cpu @(____ptrval____) s173336 r0 d88808 u262144
[ 0.000000] pcpu-alloc: s173336 r0 d88808 u262144 alloc=1*1048576
[ 0.000000] pcpu-alloc: [0] 000 001 002 003 [0] 004 005 006 007
[ 0.000000] pcpu-alloc: [0] 008 009 010 011 [0] 012 013 014 015
[ 0.000000] pcpu-alloc: [0] 016 017 018 019 [0] 020 021 022 023
[ 0.000000] pcpu-alloc: [0] 024 025 026 027 [0] 028 029 030 031
[ 0.000000] pcpu-alloc: [0] 032 033 034 035 [0] 036 037 038 039
[ 0.000000] pcpu-alloc: [0] 040 041 042 043 [0] 044 045 046 047
[ 0.000000] pcpu-alloc: [0] 048 049 050 051 [0] 052 053 054 055
[ 0.000000] pcpu-alloc: [0] 056 057 058 059 [0] 060 061 062 063
[ 0.000000] pcpu-alloc: [0] 064 065 066 067 [0] 068 069 070 071
[ 0.000000] pcpu-alloc: [0] 072 073 074 075 [0] 076 077 078 079
[ 0.000000] pcpu-alloc: [1] 080 081 082 083 [1] 084 085 086 087
[ 0.000000] pcpu-alloc: [1] 088 089 090 091 [1] 092 093 094 095
[ 0.000000] pcpu-alloc: [1] 096 097 098 099 [1] 100 101 102 103
[ 0.000000] pcpu-alloc: [1] 104 105 106 107 [1] 108 109 110 111
[ 0.000000] pcpu-alloc: [1] 112 113 114 115 [1] 116 117 118 119
[ 0.000000] pcpu-alloc: [1] 120 121 122 123 [1] 124 125 126 127
[ 0.000000] pcpu-alloc: [1] 128 129 130 131 [1] 132 133 134 135
[ 0.000000] pcpu-alloc: [1] 136 137 138 139 [1] 140 141 142 143
[ 0.000000] pcpu-alloc: [1] 144 145 146 147 [1] 148 149 150 151
[ 0.000000] pcpu-alloc: [1] 152 153 154 155 [1] 156 157 158 159
[ 0.000000] Built 2 zonelists, mobility grouping on. Total pages: 16760832
[ 0.000000] Policy zone: Normal
[ 0.000000] Kernel command line: root=UUID=2c3dd738-785a-469b-843e-9f0ba8b47b0d ro rootflags=subvol=@ quiet splash
[ 0.000000] printk: log_buf_len individual max cpu contribution: 4096 bytes
[ 0.000000] printk: log_buf_len total cpu_extra contributions: 651264 bytes
[ 0.000000] printk: log_buf_len min size: 131072 bytes
[ 0.000000] printk: log_buf_len: 1048576 bytes
[ 0.000000] printk: early log buf free: 121908(93%)
[ 0.000000] Memory: 1017704704K/1073741824K available (15872K kernel code, 2944K rwdata, 3968K rodata, 8320K init, 3097K bss, 2346752K reserved, 53690368K cma-reserved)
[ 0.000000] SLUB: HWalign=128, Order=0-3, MinObjects=0, CPUs=160, Nodes=9
[ 0.000000] ftrace: allocating 36618 entries in 14 pages
[ 0.000000] rcu: Hierarchical RCU implementation.
[ 0.000000] rcu: RCU restricting CPUs from NR_CPUS=2048 to nr_cpu_ids=160.
[ 0.000000] Tasks RCU enabled.
[ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
[ 0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=160
[ 0.000000] NR_IRQS: 512, nr_irqs: 512, preallocated irqs: 16
[ 0.000000] ICS OPAL backend registered
[ 0.000000] time_init: decrementer frequency = 512.000000 MHz
[ 0.000000] time_init: processor frequency = 2926.000000 MHz
[ 0.000005] clocksource: timebase: mask: 0xffffffffffffffff max_cycles: 0x761537d007, max_idle_ns: 440795202126 ns
[ 0.000009] clocksource: timebase mult[1f40000] shift[24] registered
[ 0.000020] clockevent: decrementer mult[83126e98] shift[32] cpu[0]
[ 0.000511] Console: colour dummy device 80x25
[ 0.000689] printk: console [hvc0] enabled
[ 0.000692] printk: bootconsole [udbg0] disabled
[ 0.020961] mempolicy: Enabling automatic NUMA balancing. Configure with numa_balancing= or the kernel.numa_balancing sysctl
[ 0.020970] pid_max: default: 163840 minimum: 1280
[ 0.025956] LSM: Security Framework initializing
[ 0.025963] Yama: becoming mindful.
[ 0.026454] AppArmor: AppArmor initialized
[ 0.048865] Dentry cache hash table entries: 33554432 (order: 12, 268435456 bytes)
[ 0.060111] Inode-cache hash table entries: 16777216 (order: 11, 134217728 bytes)
[ 0.061420] Mount-cache hash table entries: 524288 (order: 6, 4194304 bytes)
[ 0.061769] Mountpoint-cache hash table entries: 524288 (order: 6, 4194304 bytes)
[ 0.072031] EEH: PowerNV platform initialized
[ 0.072037] POWER8 performance monitor hardware support registered
[ 0.072556] rcu: Hierarchical SRCU implementation.
[ 0.078629] smp: Bringing up secondary CPUs ...
[ 1.117888] smp: Brought up 2 nodes, 160 CPUs
[ 1.117895] numa: Node 0 CPUs: 0-79
[ 1.117907] numa: Node 8 CPUs: 80-159
[ 1.117920] Using standard scheduler topology
[ 1.207749] devtmpfs: initialized
[ 1.868929] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[ 1.869115] futex hash table entries: 65536 (order: 7, 8388608 bytes)
[ 1.952040] pinctrl core: initialized pinctrl subsystem
[ 1.961759] NET: Registered protocol family 16
[ 1.963387] audit: initializing netlink subsys (disabled)
[ 1.963937] audit: type=2000 audit(1549541641.960:1): state=initialized audit_enabled=0 res=1
[ 1.965754] cpuidle: using governor ladder
[ 1.966601] cpuidle: using governor menu
[ 1.966920] pstore: Registered nvram as persistent store backend
[ 2.359146] PCI: Probing PCI hardware
[ 2.359419] PCI host bridge to bus 0000:00
[ 2.359439] pci_bus 0000:00: root bus resource [mem 0x3fe000000000-0x3fe07ffeffff] (bus address [0x80000000-0xfffeffff])
[ 2.359451] pci_bus 0000:00: root bus resource [mem 0x200000000000-0x20fdffffffff 64bit pref]
[ 2.359462] pci_bus 0000:00: root bus resource [bus 00-ff]
[ 2.359473] pci_bus 0000:00: busn_res: [bus 00-ff] end is updated to ff
[ 2.359561] pci 0000:00:00.0: [1014:03dc] type 01 class 0x060400
[ 2.359888] pci 0000:00:00.0: PME# supported from D0 D3hot D3cold
[ 2.377240] pci 0000:00:00.0: PCI bridge to [bus 01-ff]
[ 2.377327] pci_bus 0000:00: busn_res: [bus 00-ff] end is updated to ff
[ 2.377586] PCI host bridge to bus 0001:00
[ 2.377601] pci_bus 0001:00: root bus resource [mem 0x3fe080000000-0x3fe0fffeffff] (bus address [0x80000000-0xfffeffff])
[ 2.377612] pci_bus 0001:00: root bus resource [mem 0x210000000000-0x21fdffffffff 64bit pref]
[ 2.377623] pci_bus 0001:00: root bus resource [bus 00-ff]
[ 2.377632] pci_bus 0001:00: busn_res: [bus 00-ff] end is updated to ff
[ 2.377695] pci 0001:00:00.0: [1014:03dc] type 01 class 0x060400
[ 2.378005] pci 0001:00:00.0: PME# supported from D0 D3hot D3cold
[ 2.387148] pci 0001:01:00.0: [14e4:168a] type 00 class 0x020000
[ 2.387279] pci 0001:01:00.0: reg 0x10: [mem 0x210000000000-0x2100007fffff 64bit pref]
[ 2.387334] pci 0001:01:00.0: reg 0x18: [mem 0x210000800000-0x210000ffffff 64bit pref]
[ 2.387388] pci 0001:01:00.0: reg 0x20: [mem 0x210004000000-0x21000400ffff 64bit pref]
[ 2.387426] pci 0001:01:00.0: reg 0x30: [mem 0x00000000-0x0003ffff pref]
[ 2.387784] pci 0001:01:00.0: PME# supported from D0 D3hot D3cold
[ 2.388379] pci 0001:01:00.1: [14e4:168a] type 00 class 0x020000
[ 2.388505] pci 0001:01:00.1: reg 0x10: [mem 0x210001000000-0x2100017fffff 64bit pref]
[ 2.388562] pci 0001:01:00.1: reg 0x18: [mem 0x210001800000-0x210001ffffff 64bit pref]
[ 2.388618] pci 0001:01:00.1: reg 0x20: [mem 0x210004010000-0x21000401ffff 64bit pref]
[ 2.388658] pci 0001:01:00.1: reg 0x30: [mem 0x00000000-0x0003ffff pref]
[ 2.389008] pci 0001:01:00.1: PME# supported from D0 D3hot D3cold
[ 2.389569] pci 0001:01:00.2: [14e4:168a] type 00 class 0x020000
[ 2.389698] pci 0001:01:00.2: reg 0x10: [mem 0x210002000000-0x2100027fffff 64bit pref]
[ 2.389755] pci 0001:01:00.2: reg 0x18: [mem 0x210002800000-0x210002ffffff 64bit pref]
[ 2.389811] pci 0001:01:00.2: reg 0x20: [mem 0x210004020000-0x21000402ffff 64bit pref]
[ 2.389850] pci 0001:01:00.2: reg 0x30: [mem 0x00000000-0x0003ffff pref]
[ 2.390204] pci 0001:01:00.2: PME# supported from D0 D3hot D3cold
[ 2.390749] pci 0001:01:00.3: [14e4:168a] type 00 class 0x020000
[ 2.390880] pci 0001:01:00.3: reg 0x10: [mem 0x210003000000-0x2100037fffff 64bit pref]
[ 2.390938] pci 0001:01:00.3: reg 0x18: [mem 0x210003800000-0x210003ffffff 64bit pref]
[ 2.390996] pci 0001:01:00.3: reg 0x20: [mem 0x210004030000-0x21000403ffff 64bit pref]
[ 2.391036] pci 0001:01:00.3: reg 0x30: [mem 0x00000000-0x0003ffff pref]
[ 2.391396] pci 0001:01:00.3: PME# supported from D0 D3hot D3cold
[ 2.400140] pci 0001:00:00.0: PCI bridge to [bus 01]
[ 2.402160] pci_bus 0001:00: busn_res: [bus 00-ff] end is updated to 01
[ 2.402424] PCI host bridge to bus 0020:00
[ 2.402439] pci_bus 0020:00: root bus resource [mem 0x3fe800000000-0x3fe87ffeffff] (bus address [0x80000000-0xfffeffff])
[ 2.402450] pci_bus 0020:00: root bus resource [mem 0x240000000000-0x24fdffffffff 64bit pref]
[ 2.402460] pci_bus 0020:00: root bus resource [bus 00-ff]
[ 2.402469] pci_bus 0020:00: busn_res: [bus 00-ff] end is updated to ff
[ 2.402535] pci 0020:00:00.0: [1014:03dc] type 01 class 0x060400
[ 2.402864] pci 0020:00:00.0: PME# supported from D0 D3hot D3cold
[ 2.420073] pci 0020:00:00.0: PCI bridge to [bus 01-ff]
[ 2.420161] pci_bus 0020:00: busn_res: [bus 00-ff] end is updated to ff
[ 2.420446] PCI host bridge to bus 0021:00
[ 2.420461] pci_bus 0021:00: root bus resource [mem 0x3fe880000000-0x3fe8fffeffff] (bus address [0x80000000-0xfffeffff])
[ 2.420472] pci_bus 0021:00: root bus resource [mem 0x250000000000-0x25fdffffffff 64bit pref]
[ 2.420483] pci_bus 0021:00: root bus resource [bus 00-ff]
[ 2.420492] pci_bus 0021:00: busn_res: [bus 00-ff] end is updated to ff
[ 2.420555] pci 0021:00:00.0: [1014:03dc] type 01 class 0x060400
[ 2.420873] pci 0021:00:00.0: PME# supported from D0 D3hot D3cold
[ 2.429896] pci 0021:01:00.0: [10b5:8725] type 01 class 0x060400
[ 2.430021] pci 0021:01:00.0: reg 0x10: [mem 0x3fe883000000-0x3fe88303ffff]
[ 2.430461] pci 0021:01:00.0: PME# supported from D0 D3hot D3cold
[ 2.431116] pci 0021:01:00.1: [10b5:87d0] type 00 class 0x088000
[ 2.431226] pci 0021:01:00.1: reg 0x10: [mem 0x3fe883040000-0x3fe883041fff]
[ 2.431392] pci 0021:01:00.1: enabling Extended Tags
[ 2.431435] pci 0021:01:00.1: BAR0 [mem size 0x00002000]: requesting alignment to 0x10000
[ 2.432061] pci 0021:01:00.2: [10b5:87d0] type 00 class 0x088000
[ 2.432173] pci 0021:01:00.2: reg 0x10: [mem 0x3fe883042000-0x3fe883043fff]
[ 2.432340] pci 0021:01:00.2: enabling Extended Tags
[ 2.432383] pci 0021:01:00.2: BAR0 [mem size 0x00002000]: requesting alignment to 0x10000
[ 2.432974] pci 0021:01:00.3: [10b5:87d0] type 00 class 0x088000
[ 2.433088] pci 0021:01:00.3: reg 0x10: [mem 0x3fe883044000-0x3fe883045fff]
[ 2.433260] pci 0021:01:00.3: enabling Extended Tags
[ 2.433303] pci 0021:01:00.3: BAR0 [mem size 0x00002000]: requesting alignment to 0x10000
[ 2.433900] pci 0021:01:00.4: [10b5:87d0] type 00 class 0x088000
[ 2.434015] pci 0021:01:00.4: reg 0x10: [mem 0x3fe883046000-0x3fe883047fff]
[ 2.434187] pci 0021:01:00.4: enabling Extended Tags
[ 2.434232] pci 0021:01:00.4: BAR0 [mem size 0x00002000]: requesting alignment to 0x10000
[ 2.443036] pci 0021:00:00.0: PCI bridge to [bus 01-15]
[ 2.444795] pci 0021:02:01.0: [10b5:8725] type 01 class 0x060400
[ 2.445410] pci 0021:02:01.0: PME# supported from D0 D3hot D3cold
[ 2.447789] pci 0021:02:08.0: [10b5:8725] type 01 class 0x060400
[ 2.448412] pci 0021:02:08.0: PME# supported from D0 D3hot D3cold
[ 2.449254] pci 0021:02:09.0: [10b5:8725] type 01 class 0x060400
[ 2.449882] pci 0021:02:09.0: PME# supported from D0 D3hot D3cold
[ 2.450698] pci 0021:02:0a.0: [10b5:8725] type 01 class 0x060400
[ 2.451336] pci 0021:02:0a.0: PME# supported from D0 D3hot D3cold
[ 2.452162] pci 0021:02:0b.0: [10b5:8725] type 01 class 0x060400
[ 2.452805] pci 0021:02:0b.0: PME# supported from D0 D3hot D3cold
[ 2.453691] pci 0021:02:0c.0: [10b5:8725] type 01 class 0x060400
[ 2.454343] pci 0021:02:0c.0: PME# supported from D0 D3hot D3cold
[ 2.460060] pci 0021:01:00.0: PCI bridge to [bus 02-15]
[ 2.470011] pci 0021:02:01.0: PCI bridge to [bus 03-07]
[ 2.478675] pci 0021:02:08.0: PCI bridge to [bus 08-0c]
[ 2.479104] pci 0021:0d:00.0: [104c:8241] type 00 class 0x0c0330
[ 2.479238] pci 0021:0d:00.0: reg 0x10: [mem 0x3fe880800000-0x3fe88080ffff 64bit]
[ 2.479307] pci 0021:0d:00.0: reg 0x18: [mem 0x3fe880810000-0x3fe880811fff 64bit]
[ 2.479487] pci 0021:0d:00.0: BAR2 [mem size 0x00002000 64bit]: requesting alignment to 0x10000
[ 2.479739] pci 0021:0d:00.0: supports D1 D2
[ 2.479747] pci 0021:0d:00.0: PME# supported from D0 D1 D2 D3hot
[ 2.488510] pci 0021:02:09.0: PCI bridge to [bus 0d]
[ 2.488953] pci 0021:0e:00.0: [1b4b:9235] type 00 class 0x010601
[ 2.489061] pci 0021:0e:00.0: reg 0x10: [io 0x8000-0x8007]
[ 2.489109] pci 0021:0e:00.0: reg 0x14: [io 0x8040-0x8043]
[ 2.489164] pci 0021:0e:00.0: reg 0x18: [io 0x8100-0x8107]
[ 2.489210] pci 0021:0e:00.0: reg 0x1c: [io 0x8140-0x8143]
[ 2.489256] pci 0021:0e:00.0: reg 0x20: [io 0x800000-0x80001f]
[ 2.489303] pci 0021:0e:00.0: reg 0x24: [mem 0x3fe881010000-0x3fe8810107ff]
[ 2.489351] pci 0021:0e:00.0: reg 0x30: [mem 0x3fe8d0000000-0x3fe8d000ffff pref]
[ 2.489420] pci 0021:0e:00.0: BAR5 [mem size 0x00000800]: requesting alignment to 0x10000
[ 2.489646] pci 0021:0e:00.0: PME# supported from D3hot
[ 2.498389] pci 0021:02:0a.0: PCI bridge to [bus 0e]
[ 2.498868] pci 0021:0f:00.0: [1a03:1150] type 01 class 0x060400
[ 2.499141] pci 0021:0f:00.0: enabling Extended Tags
[ 2.499478] pci 0021:0f:00.0: supports D1 D2
[ 2.499486] pci 0021:0f:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 2.508229] pci 0021:02:0b.0: PCI bridge to [bus 0f-10]
[ 2.508512] pci_bus 0021:10: extended config space not accessible
[ 2.508743] pci 0021:10:00.0: [1a03:2000] type 00 class 0x030000
[ 2.508837] pci 0021:10:00.0: reg 0x10: [mem 0x3fe882000000-0x3fe882ffffff]
[ 2.508891] pci 0021:10:00.0: reg 0x14: [mem 0x3fe881800000-0x3fe88181ffff]
[ 2.508943] pci 0021:10:00.0: reg 0x18: [io 0x0000-0x007f]
[ 2.509333] pci 0021:10:00.0: supports D1 D2
[ 2.509341] pci 0021:10:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 2.518026] pci 0021:0f:00.0: PCI bridge to [bus 10]
[ 2.526714] pci 0021:02:0c.0: PCI bridge to [bus 11-15]
[ 2.526958] pci_bus 0021:00: busn_res: [bus 00-ff] end is updated to 15
[ 2.527270] PCI host bridge to bus 0022:00
[ 2.527285] pci_bus 0022:00: root bus resource [mem 0x3fe900000000-0x3fe97ffeffff] (bus address [0x80000000-0xfffeffff])
[ 2.527296] pci_bus 0022:00: root bus resource [mem 0x260000000000-0x26fdffffffff 64bit pref]
[ 2.527307] pci_bus 0022:00: root bus resource [bus 00-ff]
[ 2.527316] pci_bus 0022:00: busn_res: [bus 00-ff] end is updated to ff
[ 2.527382] pci 0022:00:00.0: [1014:03dc] type 01 class 0x060400
[ 2.527701] pci 0022:00:00.0: PME# supported from D0 D3hot D3cold
[ 2.544984] pci 0022:00:00.0: PCI bridge to [bus 01-ff]
[ 2.545072] pci_bus 0022:00: busn_res: [bus 00-ff] end is updated to ff
[ 2.545133] pci 0000:00 : [PE# fe] Secondary bus 0 associated with PE#fe
[ 2.545712] pci 0000:00:00.0: PCI bridge to [bus 01-ff]
[ 2.545757] pci_bus 0000:00: resource 4 [mem 0x3fe000000000-0x3fe07ffeffff]
[ 2.545767] pci_bus 0000:00: resource 5 [mem 0x200000000000-0x20fdffffffff 64bit pref]
[ 2.545825] pci 0001:00:00.0: BAR 15: assigned [mem 0x210000000000-0x2100ffffffff 64bit pref]
[ 2.545835] pci 0001:00:00.0: BAR 14: assigned [mem 0x3fe080000000-0x3fe0807fffff]
[ 2.545893] pci 0001:01:00.0: BAR 0: assigned [mem 0x210000000000-0x2100007fffff 64bit pref]
[ 2.545937] pci 0001:01:00.0: BAR 2: assigned [mem 0x210000800000-0x210000ffffff 64bit pref]
[ 2.545977] pci 0001:01:00.1: BAR 0: assigned [mem 0x210001000000-0x2100017fffff 64bit pref]
[ 2.546018] pci 0001:01:00.1: BAR 2: assigned [mem 0x210001800000-0x210001ffffff 64bit pref]
[ 2.546058] pci 0001:01:00.2: BAR 0: assigned [mem 0x210002000000-0x2100027fffff 64bit pref]
[ 2.546099] pci 0001:01:00.2: BAR 2: assigned [mem 0x210002800000-0x210002ffffff 64bit pref]
[ 2.546141] pci 0001:01:00.3: BAR 0: assigned [mem 0x210003000000-0x2100037fffff 64bit pref]
[ 2.546181] pci 0001:01:00.3: BAR 2: assigned [mem 0x210003800000-0x210003ffffff 64bit pref]
[ 2.546222] pci 0001:01:00.0: BAR 6: assigned [mem 0x3fe080000000-0x3fe08003ffff pref]
[ 2.546233] pci 0001:01:00.1: BAR 6: assigned [mem 0x3fe080040000-0x3fe08007ffff pref]
[ 2.546243] pci 0001:01:00.2: BAR 6: assigned [mem 0x3fe080080000-0x3fe0800bffff pref]
[ 2.546253] pci 0001:01:00.3: BAR 6: assigned [mem 0x3fe0800c0000-0x3fe0800fffff pref]
[ 2.546264] pci 0001:01:00.0: BAR 4: assigned [mem 0x210004000000-0x21000400ffff 64bit pref]
[ 2.546303] pci 0001:01:00.1: BAR 4: assigned [mem 0x210004010000-0x21000401ffff 64bit pref]
[ 2.546344] pci 0001:01:00.2: BAR 4: assigned [mem 0x210004020000-0x21000402ffff 64bit pref]
[ 2.546385] pci 0001:01:00.3: BAR 4: assigned [mem 0x210004030000-0x21000403ffff 64bit pref]
[ 2.546444] pci 0001:00 : [PE# fe] Secondary bus 0 associated with PE#fe
[ 2.547067] pci 0001:01 : [PE# 00] Secondary bus 1 associated with PE#0
[ 2.547655] pci 0001:01 : [PE# 00] Setting up 32-bit TCE table at 0..80000000
[ 2.587514] IOMMU table initialized, virtual merging enabled
[ 2.587524] pci 0001:01 : [PE# 00] Setting up window#0 0..7fffffff pg=1000
[ 2.587753] pci 0001:01 : [PE# 00] Enabling 64-bit DMA bypass
[ 2.587764] pci 0001:00:00.0: PCI bridge to [bus 01]
[ 2.587785] pci 0001:00:00.0: bridge window [mem 0x3fe080000000-0x3fe0ffefffff]
[ 2.587802] pci 0001:00:00.0: bridge window [mem 0x210000000000-0x21fdfff0ffff 64bit pref]
[ 2.587827] pci_bus 0001:00: resource 4 [mem 0x3fe080000000-0x3fe0fffeffff]
[ 2.587836] pci_bus 0001:00: resource 5 [mem 0x210000000000-0x21fdffffffff 64bit pref]
[ 2.587845] pci_bus 0001:01: resource 1 [mem 0x3fe080000000-0x3fe0ffefffff]
[ 2.587854] pci_bus 0001:01: resource 2 [mem 0x210000000000-0x21fdfff0ffff 64bit pref]
[ 2.587894] pci 0020:00 : [PE# fe] Secondary bus 0 associated with PE#fe
[ 2.588475] pci 0020:00:00.0: PCI bridge to [bus 01-ff]
[ 2.588520] pci_bus 0020:00: resource 4 [mem 0x3fe800000000-0x3fe87ffeffff]
[ 2.588529] pci_bus 0020:00: resource 5 [mem 0x240000000000-0x24fdffffffff 64bit pref]
[ 2.588577] pci 0021:02:01.0: bridge window [io 0x1000-0x0fff] to [bus 03-07] add_size 1000
[ 2.588592] pci 0021:02:01.0: bridge window [mem 0x100000000-0xffffffff 64bit pref] to [bus 03-07] add_size 100000000 add_align 100000000
[ 2.588605] pci 0021:02:01.0: bridge window [mem 0x00800000-0x007fffff] to [bus 03-07] add_size 800000 add_align 800000
[ 2.588848] pci 0021:01:00.0: bridge window [io 0x1000-0x2fff] to [bus 02-15] add_size 1000
[ 2.588866] pci 0021:01:00.0: bridge window [mem 0x100000000-0x1ffffffff 64bit pref] to [bus 02-15] add_size 100000000 add_align 100000000
[ 2.588884] pci 0021:01:00.0: bridge window [mem 0x00800000-0x037fffff] to [bus 02-15] add_size 800000 add_align 800000
[ 2.588922] pci 0021:00:00.0: bridge window [io 0x1000-0x2fff] to [bus 01-15] add_size 1000
[ 2.588939] pci 0021:00:00.0: bridge window [mem 0x100000000-0x1ffffffff 64bit pref] to [bus 01-15] add_size 100000000 add_align 100000000
[ 2.588958] pci 0021:00:00.0: bridge window [mem 0x00800000-0x03ffffff] to [bus 01-15] add_size 800000 add_align 800000
[ 2.588983] pci 0021:00:00.0: BAR 15: assigned [mem 0x250000000000-0x2501ffffffff 64bit pref]
[ 2.588993] pci 0021:00:00.0: BAR 14: assigned [mem 0x3fe880000000-0x3fe883ffffff]
[ 2.589002] pci 0021:00:00.0: BAR 13: no space for [io size 0x3000]
[ 2.589009] pci 0021:00:00.0: BAR 13: failed to assign [io size 0x3000]
[ 2.589029] pci 0021:00:00.0: BAR 13: no space for [io size 0x2000]
[ 2.589036] pci 0021:00:00.0: BAR 13: failed to assign [io size 0x2000]
[ 2.589091] pci 0021:01:00.0: BAR 15: assigned [mem 0x250000000000-0x2501ffffffff 64bit pref]
[ 2.589101] pci 0021:01:00.0: BAR 14: assigned [mem 0x3fe880000000-0x3fe8837fffff]
[ 2.589110] pci 0021:01:00.0: BAR 0: assigned [mem 0x3fe883800000-0x3fe88383ffff]
[ 2.589129] pci 0021:01:00.1: BAR 0: assigned [mem 0x3fe883840000-0x3fe883841fff]
[ 2.589148] pci 0021:01:00.2: BAR 0: assigned [mem 0x3fe883850000-0x3fe883851fff]
[ 2.589167] pci 0021:01:00.3: BAR 0: assigned [mem 0x3fe883860000-0x3fe883861fff]
[ 2.589187] pci 0021:01:00.4: BAR 0: assigned [mem 0x3fe883870000-0x3fe883871fff]
[ 2.589205] pci 0021:01:00.0: BAR 13: no space for [io size 0x3000]
[ 2.589213] pci 0021:01:00.0: BAR 13: failed to assign [io size 0x3000]
[ 2.589245] pci 0021:01:00.0: BAR 13: no space for [io size 0x2000]
[ 2.589253] pci 0021:01:00.0: BAR 13: failed to assign [io size 0x2000]
[ 2.589310] pci 0021:02:01.0: BAR 15: assigned [mem 0x250000000000-0x2500ffffffff 64bit pref]
[ 2.589320] pci 0021:02:01.0: BAR 14: assigned [mem 0x3fe880000000-0x3fe8807fffff]
[ 2.589330] pci 0021:02:09.0: BAR 14: assigned [mem 0x3fe880800000-0x3fe880ffffff]
[ 2.589340] pci 0021:02:0a.0: BAR 14: assigned [mem 0x3fe881000000-0x3fe8817fffff]
[ 2.589350] pci 0021:02:0b.0: BAR 14: assigned [mem 0x3fe881800000-0x3fe882ffffff]
[ 2.589358] pci 0021:02:01.0: BAR 13: no space for [io size 0x1000]
[ 2.589365] pci 0021:02:01.0: BAR 13: failed to assign [io size 0x1000]
[ 2.589376] pci 0021:02:0a.0: BAR 13: no space for [io size 0x1000]
[ 2.589383] pci 0021:02:0a.0: BAR 13: failed to assign [io size 0x1000]
[ 2.589394] pci 0021:02:0b.0: BAR 13: no space for [io size 0x1000]
[ 2.589401] pci 0021:02:0b.0: BAR 13: failed to assign [io size 0x1000]
[ 2.589432] pci 0021:02:0a.0: BAR 13: no space for [io size 0x1000]
[ 2.589440] pci 0021:02:0a.0: BAR 13: failed to assign [io size 0x1000]
[ 2.589451] pci 0021:02:0b.0: BAR 13: no space for [io size 0x1000]
[ 2.589458] pci 0021:02:0b.0: BAR 13: failed to assign [io size 0x1000]
[ 2.589469] pci 0021:02:01.0: BAR 13: no space for [io size 0x1000]
[ 2.589477] pci 0021:02:01.0: BAR 13: failed to assign [io size 0x1000]
[ 2.589491] pci 0021:00 : [PE# fe] Secondary bus 0 associated with PE#fe
[ 2.590071] pci 0021:02:01.0: PCI bridge to [bus 03-07]
[ 2.590094] pci 0021:02:01.0: bridge window [mem 0x3fe880000000-0x3fe8807fffff]
[ 2.590112] pci 0021:02:01.0: bridge window [mem 0x250000000000-0x2500ffffffff 64bit pref]
[ 2.590136] pci 0021:02:08.0: PCI bridge to [bus 08-0c]
[ 2.590193] pci 0021:0d:00.0: BAR 0: assigned [mem 0x3fe880800000-0x3fe88080ffff 64bit]
[ 2.590242] pci 0021:0d:00.0: BAR 2: assigned [mem 0x3fe880810000-0x3fe880811fff 64bit]
[ 2.590301] pci 0021:0d : [PE# fd] Secondary bus 13 associated with PE#fd
[ 2.590888] pci 0021:0d : [PE# fd] Setting up 32-bit TCE table at 0..80000000
[ 2.631953] pci 0021:0d : [PE# fd] Setting up window#0 0..7fffffff pg=1000
[ 2.632065] pci 0021:0d : [PE# fd] Enabling 64-bit DMA bypass
[ 2.632073] pci 0021:02:09.0: PCI bridge to [bus 0d]
[ 2.632097] pci 0021:02:09.0: bridge window [mem 0x3fe880800000-0x3fe880ffffff]
[ 2.632155] pci 0021:0e:00.0: BAR 5: assigned [mem 0x3fe881000000-0x3fe8810007ff]
[ 2.632177] pci 0021:0e:00.0: BAR 6: assigned [mem 0x3fe881010000-0x3fe88101ffff pref]
[ 2.632186] pci 0021:0e:00.0: BAR 4: no space for [io size 0x0020]
[ 2.632193] pci 0021:0e:00.0: BAR 4: failed to assign [io size 0x0020]
[ 2.632204] pci 0021:0e:00.0: BAR 0: no space for [io size 0x0008]
[ 2.632212] pci 0021:0e:00.0: BAR 0: failed to assign [io size 0x0008]
[ 2.632222] pci 0021:0e:00.0: BAR 2: no space for [io size 0x0008]
[ 2.632229] pci 0021:0e:00.0: BAR 2: failed to assign [io size 0x0008]
[ 2.632238] pci 0021:0e:00.0: BAR 1: no space for [io size 0x0004]
[ 2.632246] pci 0021:0e:00.0: BAR 1: failed to assign [io size 0x0004]
[ 2.632256] pci 0021:0e:00.0: BAR 3: no space for [io size 0x0004]
[ 2.632264] pci 0021:0e:00.0: BAR 3: failed to assign [io size 0x0004]
[ 2.632290] pci 0021:0e : [PE# fc] Secondary bus 14 associated with PE#fc
[ 2.632872] pci 0021:0e : [PE# fc] Setting up 32-bit TCE table at 0..80000000
[ 2.673835] pci 0021:0e : [PE# fc] Setting up window#0 0..7fffffff pg=1000
[ 2.673849] pci 0021:0e : [PE# fc] Enabling 64-bit DMA bypass
[ 2.673857] pci 0021:02:0a.0: PCI bridge to [bus 0e]
[ 2.673883] pci 0021:02:0a.0: bridge window [mem 0x3fe881000000-0x3fe8817fffff]
[ 2.673929] pci 0021:0f:00.0: BAR 14: assigned [mem 0x3fe881800000-0x3fe882ffffff]
[ 2.673937] pci 0021:0f:00.0: BAR 13: no space for [io size 0x1000]
[ 2.673944] pci 0021:0f:00.0: BAR 13: failed to assign [io size 0x1000]
[ 2.673970] pci 0021:10:00.0: BAR 0: assigned [mem 0x3fe882000000-0x3fe882ffffff]
[ 2.673995] pci 0021:10:00.0: BAR 1: assigned [mem 0x3fe881800000-0x3fe88181ffff]
[ 2.674016] pci 0021:10:00.0: BAR 2: no space for [io size 0x0080]
[ 2.674023] pci 0021:10:00.0: BAR 2: failed to assign [io size 0x0080]
[ 2.674046] pci 0021:10 : [PE# fb] Secondary bus 16..16 associated with PE#fb
[ 2.674628] pci 0021:10 : [PE# fb] Setting up 32-bit TCE table at 0..80000000
[ 2.715762] pci 0021:10 : [PE# fb] Setting up window#0 0..7fffffff pg=1000
[ 2.715775] pci 0021:10 : [PE# fb] Enabling 64-bit DMA bypass
[ 2.715783] pci 0021:0f:00.0: PCI bridge to [bus 10]
[ 2.715810] pci 0021:0f:00.0: bridge window [mem 0x3fe881800000-0x3fe882ffffff]
[ 2.715860] pci 0021:0f : [PE# fa] Secondary bus 15 associated with PE#fa
[ 2.716441] pci 0021:02:0b.0: PCI bridge to [bus 0f-10]
[ 2.716464] pci 0021:02:0b.0: bridge window [mem 0x3fe881800000-0x3fe882ffffff]
[ 2.716502] pci 0021:02:0c.0: PCI bridge to [bus 11-15]
[ 2.716566] pci 0021:02 : [PE# f9] Secondary bus 2 associated with PE#f9
[ 2.717145] pci 0021:01:00.0: PCI bridge to [bus 02-15]
[ 2.717167] pci 0021:01:00.0: bridge window [mem 0x3fe880000000-0x3fe8ffefffff]
[ 2.717184] pci 0021:01:00.0: bridge window [mem 0x250000000000-0x25fdfff0ffff 64bit pref]
[ 2.717222] pci 0021:01 : [PE# f8] Secondary bus 1 associated with PE#f8
[ 2.717806] pci 0021:01 : [PE# f8] Setting up 32-bit TCE table at 0..80000000
[ 2.758838] pci 0021:01 : [PE# f8] Setting up window#0 0..7fffffff pg=1000
[ 2.758851] pci 0021:01 : [PE# f8] Enabling 64-bit DMA bypass
[ 2.758860] pci 0021:00:00.0: PCI bridge to [bus 01-15]
[ 2.758882] pci 0021:00:00.0: bridge window [mem 0x3fe880000000-0x3fe8ffefffff]
[ 2.758899] pci 0021:00:00.0: bridge window [mem 0x250000000000-0x25fdfff0ffff 64bit pref]
[ 2.758922] pci_bus 0021:00: Some PCI device resources are unassigned, try booting with pci=realloc
[ 2.758951] pci_bus 0021:00: resource 4 [mem 0x3fe880000000-0x3fe8fffeffff]
[ 2.758961] pci_bus 0021:00: resource 5 [mem 0x250000000000-0x25fdffffffff 64bit pref]
[ 2.758970] pci_bus 0021:01: resource 1 [mem 0x3fe880000000-0x3fe8ffefffff]
[ 2.758979] pci_bus 0021:01: resource 2 [mem 0x250000000000-0x25fdfff0ffff 64bit pref]
[ 2.758988] pci_bus 0021:02: resource 1 [mem 0x3fe880000000-0x3fe8ffefffff]
[ 2.758997] pci_bus 0021:02: resource 2 [mem 0x250000000000-0x25fdfff0ffff 64bit pref]
[ 2.759007] pci_bus 0021:03: resource 1 [mem 0x3fe880000000-0x3fe8807fffff]
[ 2.759015] pci_bus 0021:03: resource 2 [mem 0x250000000000-0x2500ffffffff 64bit pref]
[ 2.759026] pci_bus 0021:0d: resource 1 [mem 0x3fe880800000-0x3fe880ffffff]
[ 2.759036] pci_bus 0021:0e: resource 1 [mem 0x3fe881000000-0x3fe8817fffff]
[ 2.759045] pci_bus 0021:0f: resource 1 [mem 0x3fe881800000-0x3fe882ffffff]
[ 2.759055] pci_bus 0021:10: resource 1 [mem 0x3fe881800000-0x3fe882ffffff]
[ 2.759102] pci 0022:00 : [PE# fe] Secondary bus 0 associated with PE#fe
[ 2.759687] pci 0022:00:00.0: PCI bridge to [bus 01-ff]
[ 2.759734] pci_bus 0022:00: resource 4 [mem 0x3fe900000000-0x3fe97ffeffff]
[ 2.759743] pci_bus 0022:00: resource 5 [mem 0x260000000000-0x26fdffffffff 64bit pref]
[ 2.759887] iommu: Adding device 0001:01:00.0 to group 0
[ 2.759913] iommu: Adding device 0001:01:00.1 to group 0
[ 2.759938] iommu: Adding device 0001:01:00.2 to group 0
[ 2.759962] iommu: Adding device 0001:01:00.3 to group 0
[ 2.760041] iommu: Adding device 0021:0d:00.0 to group 1
[ 2.760120] iommu: Adding device 0021:0e:00.0 to group 2
[ 2.760194] iommu: Adding device 0021:10:00.0 to group 3
[ 2.760279] iommu: Adding device 0021:01:00.0 to group 4
[ 2.760303] iommu: Adding device 0021:01:00.1 to group 4
[ 2.760328] iommu: Adding device 0021:01:00.2 to group 4
[ 2.760352] iommu: Adding device 0021:01:00.3 to group 4
[ 2.760376] iommu: Adding device 0021:01:00.4 to group 4
[ 2.760594] pci 0001:00:00.0: enabling device (0141 -> 0143)
[ 2.760630] pci 0021:00:00.0: enabling device (0141 -> 0143)
[ 2.760665] pci 0021:01:00.0: enabling device (0141 -> 0143)
[ 2.760706] pci 0021:02:09.0: enabling device (0141 -> 0143)
[ 2.760749] pci 0021:02:0a.0: enabling device (0141 -> 0143)
[ 2.760793] pci 0021:02:0b.0: enabling device (0141 -> 0143)
[ 2.760840] pci 0021:0f:00.0: enabling device (0141 -> 0143)
[ 2.763445] EEH: PCI Enhanced I/O Error Handling Enabled
[ 2.765012] PCI: Probing PCI hardware done
[ 2.775896] powernv-rng: Registering arch random hook.
[ 2.781203] HugeTLB registered 16.0 MiB page size, pre-allocated 0 pages
[ 2.781205] HugeTLB registered 16.0 GiB page size, pre-allocated 0 pages
[ 2.784702] pci 0021:10:00.0: vgaarb: VGA device added: decodes=io+mem,owns=none,locks=none
[ 2.784704] pci 0021:10:00.0: vgaarb: bridge control possible
[ 2.784707] pci 0021:10:00.0: vgaarb: setting as boot device (VGA legacy resources not available)
[ 2.784708] vgaarb: loaded
[ 2.785666] SCSI subsystem initialized
[ 2.785967] libata version 3.00 loaded.
[ 2.786040] usbcore: registered new interface driver usbfs
[ 2.786056] usbcore: registered new interface driver hub
[ 2.786456] usbcore: registered new device driver usb
[ 2.786534] pps_core: LinuxPPS API ver. 1 registered
[ 2.786534] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[ 2.786541] PTP clock support registered
[ 2.787097] EDAC MC: Ver: 3.0.0
[ 2.787771] NetLabel: Initializing
[ 2.787772] NetLabel: domain hash size = 128
[ 2.787773] NetLabel: protocols = UNLABELED CIPSOv4 CALIPSO
[ 2.787800] NetLabel: unlabeled traffic allowed by default
[ 2.788521] clocksource: Switched to clocksource timebase
[ 2.820776] VFS: Disk quotas dquot_6.6.0
[ 2.821671] VFS: Dquot-cache hash table entries: 8192 (order 0, 65536 bytes)
[ 2.823195] AppArmor: AppArmor Filesystem Enabled
[ 2.827339] NET: Registered protocol family 2
[ 2.828565] tcp_listen_portaddr_hash hash table entries: 65536 (order: 4, 1048576 bytes)
[ 2.828708] TCP established hash table entries: 524288 (order: 6, 4194304 bytes)
[ 2.829791] TCP bind hash table entries: 65536 (order: 4, 1048576 bytes)
[ 2.829920] TCP: Hash tables configured (established 524288 bind 65536)
[ 2.830564] UDP hash table entries: 65536 (order: 5, 2097152 bytes)
[ 2.830837] UDP-Lite hash table entries: 65536 (order: 5, 2097152 bytes)
[ 2.832538] NET: Registered protocol family 1
[ 2.832637] pci 0021:0d:00.0: enabling device (0140 -> 0142)
[ 2.832694] PCI: CLS 0 bytes, default 128
[ 2.832764] Unpacking initramfs...
[ 3.961886] Freeing initrd memory: 63616K
[ 3.962149] numa: Starting topology update
[ 3.968565] Initialise system trusted keyrings
[ 3.968579] Key type blacklist registered
[ 3.968660] workingset: timestamp_bits=38 max_order=24 bucket_order=0
[ 3.971824] zbud: loaded
[ 3.976486] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[ 3.978069] fuse init (API version 7.28)
[ 3.992801] random: fast init done
[ 4.031260] Key type asymmetric registered
[ 4.031262] Asymmetric key parser 'x509' registered
[ 4.031281] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 244)
[ 4.031763] random: crng init done
[ 4.034271] pci 0021:10:00.0: enabling device (0141 -> 0143)
[ 4.034284] Using unsupported 1024x768 (null) at 3fe882010000, depth=32, pitch=4096
[ 4.172881] Console: switching to colour frame buffer device 128x48
[ 4.311446] fb0: Open Firmware frame buffer device on /pciex@3fffe41100000/pci@0/pci@0/pci@b/pci@0/vga@0
[ 4.311679] hvc0: raw protocol on /ibm,opal/consoles/serial@0 (boot console)
[ 4.311681] hvc0: No interrupts property, using OPAL event
[ 4.312164] Serial: 8250/16550 driver, 32 ports, IRQ sharing enabled
[ 4.315361] Linux agpgart interface v0.103
[ 4.358848] loop: module loaded
[ 4.359533] libphy: Fixed MDIO Bus: probed
[ 4.359534] tun: Universal TUN/TAP device driver, 1.6
[ 4.359603] PPP generic driver version 2.4.2
[ 4.359700] VFIO - User Level meta-driver version: 0.3
[ 4.359815] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 4.359833] ehci-pci: EHCI PCI platform driver
[ 4.359847] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[ 4.359850] ohci-pci: OHCI PCI platform driver
[ 4.359864] uhci_hcd: USB Universal Host Controller Interface driver
[ 4.360077] xhci_hcd 0021:0d:00.0: xHCI Host Controller
[ 4.360097] xhci_hcd 0021:0d:00.0: new USB bus registered, assigned bus number 1
[ 4.360180] xhci_hcd 0021:0d:00.0: Using 64-bit DMA iommu bypass
[ 4.360235] xhci_hcd 0021:0d:00.0: hcc params 0x0270f06d hci version 0x96 quirks 0x0000000004000000
[ 4.361708] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.00
[ 4.361710] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 4.361712] usb usb1: Product: xHCI Host Controller
[ 4.361713] usb usb1: Manufacturer: Linux 5.0.0-rc5+ xhci-hcd
[ 4.361714] usb usb1: SerialNumber: 0021:0d:00.0
[ 4.361916] hub 1-0:1.0: USB hub found
[ 4.361930] hub 1-0:1.0: 4 ports detected
[ 4.362166] xhci_hcd 0021:0d:00.0: xHCI Host Controller
[ 4.362171] xhci_hcd 0021:0d:00.0: new USB bus registered, assigned bus number 2
[ 4.362174] xhci_hcd 0021:0d:00.0: Host supports USB 3.0 SuperSpeed
[ 4.362201] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[ 4.362242] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 5.00
[ 4.362244] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 4.362245] usb usb2: Product: xHCI Host Controller
[ 4.362247] usb usb2: Manufacturer: Linux 5.0.0-rc5+ xhci-hcd
[ 4.362248] usb usb2: SerialNumber: 0021:0d:00.0
[ 4.362422] hub 2-0:1.0: USB hub found
[ 4.362435] hub 2-0:1.0: 4 ports detected
[ 4.363012] mousedev: PS/2 mouse device common for all mice
[ 4.380453] rtc-opal opal-rtc: registered as rtc0
[ 4.380467] i2c /dev entries driver
[ 4.384650] device-mapper: uevent: version 1.0.3
[ 4.384935] device-mapper: ioctl: 4.39.0-ioctl (2018-04-03) initialised: dm-devel@redhat.com
[ 4.384943] powernv-cpufreq: cpufreq pstate min 0xffffffd5 nominal 0xffffffef max 0x0
[ 4.384944] powernv-cpufreq: Workload Optimized Frequency is disabled in the platform
[ 4.392807] powernv_idle_driver registered
[ 4.394685] ledtrig-cpu: registered to indicate activity on CPUs
[ 4.396248] NET: Registered protocol family 10
[ 4.405394] Segment Routing with IPv6
[ 4.405419] NET: Registered protocol family 17
[ 4.405479] Key type dns_resolver registered
[ 4.405559] drmem: No dynamic reconfiguration memory found
[ 4.405752] registered taskstats version 1
[ 4.405766] Loading compiled-in X.509 certificates
[ 4.407552] Loaded X.509 cert 'Build time autogenerated kernel key: 8ff7e67c3c4ba58b4ad0978adfb0aa67041f9c5e'
[ 4.407890] zswap: loaded using pool lzo/zbud
[ 4.407957] kmemleak: Kernel memory leak detector initialized
[ 4.407959] kmemleak: Automatic memory scanning thread started
[ 4.408032] pstore: Using crash dump compression: deflate
[ 4.414429] Key type big_key registered
[ 4.414433] Key type trusted registered
[ 4.417745] Key type encrypted registered
[ 4.417747] AppArmor: AppArmor sha1 policy hashing enabled
[ 4.417754] ima: No TPM chip found, activating TPM-bypass!
[ 4.417759] ima: Allocated hash algorithm: sha256
[ 4.417770] No architecture policies found
[ 4.417786] evm: Initialising EVM extended attributes:
[ 4.417787] evm: security.selinux
[ 4.417788] evm: security.SMACK64
[ 4.417788] evm: security.SMACK64EXEC
[ 4.417788] evm: security.SMACK64TRANSMUTE
[ 4.417789] evm: security.SMACK64MMAP
[ 4.417789] evm: security.apparmor
[ 4.417790] evm: security.ima
[ 4.417790] evm: security.capability
[ 4.417791] evm: HMAC attrs: 0x1
[ 4.440569] rtc-opal opal-rtc: setting system clock to 2019-02-07T12:14:04 UTC (1549541644)
[ 4.440875] integrity: Unable to open file: /etc/keys/x509_ima.der (-2)
[ 4.440879] integrity: Unable to open file: /etc/keys/x509_evm.der (-2)
[ 4.443129] Freeing unused kernel memory: 8320K
[ 4.443171] This architecture does not have kernel memory protection.
[ 4.443176] Run /init as init process
[ 4.696402] usb 1-3: new high-speed USB device number 2 using xhci_hcd
[ 4.886218] usb 1-3: New USB device found, idVendor=046b, idProduct=ff01, bcdDevice= 1.00
[ 4.886220] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 4.886221] usb 1-3: Product: Virtual Hub
[ 4.886222] usb 1-3: Manufacturer: American Megatrends Inc.
[ 4.886223] usb 1-3: SerialNumber: serial
[ 4.899120] hub 1-3:1.0: USB hub found
[ 4.899462] hub 1-3:1.0: 5 ports detected
[ 5.127006] ahci 0021:0e:00.0: version 3.0
[ 5.127024] ahci 0021:0e:00.0: enabling device (0141 -> 0143)
[ 5.127765] ahci 0021:0e:00.0: Using 64-bit DMA iommu bypass
[ 5.137853] ahci 0021:0e:00.0: AHCI 0001.0000 32 slots 4 ports 6 Gbps 0xf impl SATA mode
[ 5.137855] ahci 0021:0e:00.0: flags: 64bit ncq sntf led only pmp fbs pio slum part sxs
[ 5.140827] scsi host0: ahci
[ 5.145021] scsi host1: ahci
[ 5.148977] scsi host2: ahci
[ 5.152628] scsi host3: ahci
[ 5.153286] bnx2x: QLogic 5771x/578xx 10/20-Gigabit Ethernet Driver bnx2x 1.712.30-0 (2014/02/10)
[ 5.153842] bnx2x 0001:01:00.0: msix capability found
[ 5.155888] ata1: SATA max UDMA/133 abar m2048@0x3fe881000000 port 0x3fe881000100 irq 385
[ 5.155891] ata2: SATA max UDMA/133 abar m2048@0x3fe881000000 port 0x3fe881000180 irq 385
[ 5.155892] ata3: SATA max UDMA/133 abar m2048@0x3fe881000000 port 0x3fe881000200 irq 385
[ 5.155894] ata4: SATA max UDMA/133 abar m2048@0x3fe881000000 port 0x3fe881000280 irq 385
[ 5.172409] bnx2x 0001:01:00.0: enabling device (0140 -> 0142)
[ 5.172498] bnx2x 0001:01:00.0: Using 64-bit DMA iommu bypass
[ 5.172562] bnx2x 0001:01:00.0: part number 0-0-0-0
[ 5.178664] checking generic (3fe882010000 300000) vs hw (3fe882000000 1000000)
[ 5.178665] fb0: switching to astdrmfb from OFfb vga
[ 5.178989] Console: switching to colour dummy device 80x25
[ 5.184015] [drm] platform has no IO space, trying MMIO
[ 5.184026] [drm] Using P2A bridge for configuration
[ 5.184029] [drm] AST 2400 detected
[ 5.184034] [drm] Analog VGA only
[ 5.184043] [drm] dram MCLK=408 Mhz type=7 bus_width=16 size=00e00000
[ 5.184704] [TTM] Zone kernel: Available graphics memory: 535733984 kiB
[ 5.184704] [TTM] Zone dma32: Available graphics memory: 2097152 kiB
[ 5.184705] [TTM] Initializing pool allocator
[ 5.281429] bnx2x 0001:01:00.0: 32.000 Gb/s available PCIe bandwidth (5 GT/s x8 link)
[ 5.281616] bnx2x 0001:01:00.1: msix capability found
[ 5.300410] bnx2x 0001:01:00.1: enabling device (0140 -> 0142)
[ 5.300500] bnx2x 0001:01:00.1: Using 64-bit DMA iommu bypass
[ 5.300562] bnx2x 0001:01:00.1: part number 0-0-0-0
[ 5.321210] usb 1-3.1: new high-speed USB device number 3 using xhci_hcd
[ 5.323027] Console: switching to colour frame buffer device 128x48
[ 5.364304] synth uevent: /devices/vio: failed to send uevent
[ 5.364308] vio vio: uevent: failed to send synthetic uevent
[ 5.382961] bnx2x 0001:01:00.1: 32.000 Gb/s available PCIe bandwidth (5 GT/s x8 link)
[ 5.383075] bnx2x 0001:01:00.2: msix capability found
[ 5.392607] ast 0021:10:00.0: fb0: astdrmfb frame buffer device
[ 5.402221] bnx2x 0001:01:00.2: enabling device (0140 -> 0142)
[ 5.402386] bnx2x 0001:01:00.2: Using 64-bit DMA iommu bypass
[ 5.402465] bnx2x 0001:01:00.2: part number 0-0-0-0
[ 5.444428] [drm] Initialized ast 0.1.0 20120228 for 0021:10:00.0 on minor 0
[ 5.470640] ata3: SATA link down (SStatus 0 SControl 300)
[ 5.474616] ata4: SATA link down (SStatus 0 SControl 300)
[ 5.488917] bnx2x 0001:01:00.2: 32.000 Gb/s available PCIe bandwidth (5 GT/s x8 link)
[ 5.489047] bnx2x 0001:01:00.3: msix capability found
[ 5.509327] usb 1-3.1: New USB device found, idVendor=046b, idProduct=ff20, bcdDevice= 1.00
[ 5.509329] usb 1-3.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 5.509330] usb 1-3.1: Product: Virtual Cdrom Device
[ 5.509331] usb 1-3.1: Manufacturer: American Megatrends Inc.
[ 5.509332] usb 1-3.1: SerialNumber: AAAABBBBCCCC1
[ 5.512486] bnx2x 0001:01:00.3: enabling device (0140 -> 0142)
[ 5.512636] bnx2x 0001:01:00.3: Using 64-bit DMA iommu bypass
[ 5.512725] bnx2x 0001:01:00.3: part number 0-0-0-0
[ 5.584013] bnx2x 0001:01:00.3: 32.000 Gb/s available PCIe bandwidth (5 GT/s x8 link)
[ 5.585548] bnx2x 0001:01:00.1 enP1p1s0f1: renamed from eth1
[ 5.616395] usb 1-3.2: new high-speed USB device number 4 using xhci_hcd
[ 5.636409] ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[ 5.637340] ata1.00: ATA-10: ST1000NX0313 00LY266 00LY265IBM, BE33, max UDMA/133
[ 5.637342] ata1.00: 1953525168 sectors, multi 0: LBA48 NCQ (depth 32), AA
[ 5.637987] ata1.00: configured for UDMA/133
[ 5.640207] scsi 0:0:0:0: Direct-Access ATA ST1000NX0313 BE33 PQ: 0 ANSI: 5
[ 5.640410] ata2: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[ 5.640747] sd 0:0:0:0: [sda] 1953525168 512-byte logical blocks: (1.00 TB/932 GiB)
[ 5.640751] sd 0:0:0:0: [sda] 4096-byte physical blocks
[ 5.640776] sd 0:0:0:0: [sda] Write Protect is off
[ 5.640779] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
[ 5.640817] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 5.641165] sd 0:0:0:0: Attached scsi generic sg0 type 0
[ 5.641333] ata2.00: ATA-10: ST1000NX0313 00LY266 00LY265IBM, BE33, max UDMA/133
[ 5.641335] ata2.00: 1953525168 sectors, multi 0: LBA48 NCQ (depth 32), AA
[ 5.641972] ata2.00: configured for UDMA/133
[ 5.644311] scsi 1:0:0:0: Direct-Access ATA ST1000NX0313 BE33 PQ: 0 ANSI: 5
[ 5.644948] sd 1:0:0:0: [sdb] 1953525168 512-byte logical blocks: (1.00 TB/932 GiB)
[ 5.644951] sd 1:0:0:0: [sdb] 4096-byte physical blocks
[ 5.644972] sd 1:0:0:0: [sdb] Write Protect is off
[ 5.644974] sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[ 5.645010] sd 1:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 5.645444] sd 1:0:0:0: Attached scsi generic sg1 type 0
[ 5.666753] sd 1:0:0:0: [sdb] Attached SCSI removable disk
[ 5.688860] sda: sda1 sda2
[ 5.692750] sd 0:0:0:0: [sda] Attached SCSI removable disk
[ 5.743998] usb 1-3.2: New USB device found, idVendor=046b, idProduct=ff40, bcdDevice= 1.00
[ 5.744000] usb 1-3.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 5.744001] usb 1-3.2: Product: Virtual Floppy Device
[ 5.744002] usb 1-3.2: Manufacturer: American Megatrends Inc.
[ 5.744003] usb 1-3.2: SerialNumber: AAAABBBBCCCC2
[ 5.826204] bnx2x 0001:01:00.0 enP1p1s0f0: renamed from eth0
[ 5.848399] usb 1-3.3: new high-speed USB device number 5 using xhci_hcd
[ 5.892834] bnx2x 0001:01:00.3 enP1p1s0f3: renamed from eth3
[ 5.924694] bnx2x 0001:01:00.2 enP1p1s0f2: renamed from eth2
[ 5.976012] usb 1-3.3: New USB device found, idVendor=046b, idProduct=ff31, bcdDevice= 1.00
[ 5.976015] usb 1-3.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 5.976016] usb 1-3.3: Product: Virtual HardDisk Device
[ 5.976017] usb 1-3.3: Manufacturer: American Megatrends Inc.
[ 5.976018] usb 1-3.3: SerialNumber: AAAABBBBCCCC3
[ 6.080408] usb 1-3.4: new low-speed USB device number 6 using xhci_hcd
[ 6.227518] usb 1-3.4: New USB device found, idVendor=046b, idProduct=ff10, bcdDevice= 1.00
[ 6.227520] usb 1-3.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 6.227521] usb 1-3.4: Product: Virtual Keyboard and Mouse
[ 6.227522] usb 1-3.4: Manufacturer: American Megatrends Inc.
[ 6.262421] usb-storage 1-3.1:1.0: USB Mass Storage device detected
[ 6.262607] scsi host4: usb-storage 1-3.1:1.0
[ 6.263386] usb-storage 1-3.2:1.0: USB Mass Storage device detected
[ 6.263471] usb-storage 1-3.2:1.0: Quirks match for vid 046b pid ff40: 200
[ 6.263502] scsi host5: usb-storage 1-3.2:1.0
[ 6.263874] usb-storage 1-3.3:1.0: USB Mass Storage device detected
[ 6.264003] scsi host6: usb-storage 1-3.3:1.0
[ 6.264183] hidraw: raw HID events driver (C) Jiri Kosina
[ 6.264442] usbcore: registered new interface driver usb-storage
[ 6.265899] usbcore: registered new interface driver uas
[ 6.278625] usbcore: registered new interface driver usbhid
[ 6.278626] usbhid: USB HID core driver
[ 6.281362] input: American Megatrends Inc. Virtual Keyboard and Mouse as /devices/pci0021:00/0021:00:00.0/0021:01:00.0/0021:02:09.0/0021:0d:00.0/usb1/1-3/1-3.4/1-3.4:1.0/0003:046B:FF10.0001/input/input0
[ 6.281457] hid-generic 0003:046B:FF10.0001: input,hidraw0: USB HID v1.10 Keyboard [American Megatrends Inc. Virtual Keyboard and Mouse] on usb-0021:0d:00.0-3.4/input0
[ 6.281579] input: American Megatrends Inc. Virtual Keyboard and Mouse as /devices/pci0021:00/0021:00:00.0/0021:01:00.0/0021:02:09.0/0021:0d:00.0/usb1/1-3/1-3.4/1-3.4:1.1/0003:046B:FF10.0002/input/input1
[ 6.281697] hid-generic 0003:046B:FF10.0002: input,hidraw1: USB HID v1.10 Mouse [American Megatrends Inc. Virtual Keyboard and Mouse] on usb-0021:0d:00.0-3.4/input1
[ 6.548398] raid6: vpermxor8 gen() 23045 MB/s
[ 6.616396] raid6: vpermxor4 gen() 20602 MB/s
[ 6.684398] raid6: vpermxor2 gen() 13170 MB/s
[ 6.752404] raid6: vpermxor1 gen() 8821 MB/s
[ 6.820396] raid6: altivecx8 gen() 8323 MB/s
[ 6.888397] raid6: altivecx4 gen() 20627 MB/s
[ 6.956398] raid6: altivecx2 gen() 15057 MB/s
[ 7.024404] raid6: altivecx1 gen() 8821 MB/s
[ 7.092401] raid6: int64x8 gen() 5981 MB/s
[ 7.160399] raid6: int64x8 xor() 2141 MB/s
[ 7.228397] raid6: int64x4 gen() 10316 MB/s
[ 7.273411] scsi 4:0:0:0: CD-ROM AMI Virtual CDROM0 1.00 PQ: 0 ANSI: 0 CCS
[ 7.273706] scsi 6:0:0:0: Direct-Access AMI Virtual HDisk0 1.00 PQ: 0 ANSI: 0 CCS
[ 7.276908] scsi 4:0:0:1: CD-ROM AMI Virtual CDROM1 1.00 PQ: 0 ANSI: 0 CCS
[ 7.277203] scsi 6:0:0:1: Direct-Access AMI Virtual HDisk1 1.00 PQ: 0 ANSI: 0 CCS
[ 7.277960] scsi 5:0:0:0: Direct-Access AMI Virtual Floppy0 1.00 PQ: 0 ANSI: 0 CCS
[ 7.280658] scsi 4:0:0:2: CD-ROM AMI Virtual CDROM2 1.00 PQ: 0 ANSI: 0 CCS
[ 7.280953] scsi 6:0:0:2: Direct-Access AMI Virtual HDisk2 1.00 PQ: 0 ANSI: 0 CCS
[ 7.284448] scsi 4:0:0:3: CD-ROM AMI Virtual CDROM3 1.00 PQ: 0 ANSI: 0 CCS
[ 7.284708] scsi 6:0:0:3: Direct-Access AMI Virtual HDisk3 1.00 PQ: 0 ANSI: 0 CCS
[ 7.288333] scsi 5:0:0:1: Direct-Access AMI Virtual Floppy1 1.00 PQ: 0 ANSI: 0 CCS
[ 7.291196] scsi 5:0:0:2: Direct-Access AMI Virtual Floppy2 1.00 PQ: 0 ANSI: 0 CCS
[ 7.293697] scsi 5:0:0:3: Direct-Access AMI Virtual Floppy3 1.00 PQ: 0 ANSI: 0 CCS
[ 7.296403] raid6: int64x4 xor() 2980 MB/s
[ 7.297204] sd 5:0:0:0: Attached scsi generic sg2 type 0
[ 7.298099] sd 5:0:0:1: Attached scsi generic sg3 type 0
[ 7.299380] sd 5:0:0:2: Attached scsi generic sg4 type 0
[ 7.302175] sd 5:0:0:3: Attached scsi generic sg5 type 0
[ 7.305476] sd 6:0:0:0: Attached scsi generic sg6 type 0
[ 7.309325] sd 6:0:0:1: Attached scsi generic sg7 type 0
[ 7.309706] sd 5:0:0:0: [sdc] Attached SCSI removable disk
[ 7.315203] sd 6:0:0:2: Attached scsi generic sg8 type 0
[ 7.315957] sd 5:0:0:1: [sdd] Attached SCSI removable disk
[ 7.317707] sd 5:0:0:2: [sde] Attached SCSI removable disk
[ 7.319859] sd 6:0:0:3: Attached scsi generic sg9 type 0
[ 7.327677] sr 4:0:0:0: [sr0] scsi-1 drive
[ 7.327679] cdrom: Uniform CD-ROM driver Revision: 3.20
[ 7.331833] sd 6:0:0:0: [sdg] Attached SCSI removable disk
[ 7.332100] sd 5:0:0:3: [sdf] Attached SCSI removable disk
[ 7.335334] sd 6:0:0:1: [sdh] Attached SCSI removable disk
[ 7.340703] sd 6:0:0:3: [sdj] Attached SCSI removable disk
[ 7.344211] sd 6:0:0:2: [sdi] Attached SCSI removable disk
[ 7.345390] sr 4:0:0:0: Attached scsi CD-ROM sr0
[ 7.346047] sr 4:0:0:0: Attached scsi generic sg10 type 5
[ 7.351577] sr 4:0:0:1: [sr1] scsi-1 drive
[ 7.358182] sr 4:0:0:1: Attached scsi CD-ROM sr1
[ 7.359161] sr 4:0:0:1: Attached scsi generic sg11 type 5
[ 7.362765] sr 4:0:0:2: [sr2] scsi-1 drive
[ 7.364411] raid6: int64x2 gen() 5816 MB/s
[ 7.367905] sr 4:0:0:2: Attached scsi CD-ROM sr2
[ 7.368554] sr 4:0:0:2: Attached scsi generic sg12 type 5
[ 7.370573] sr 4:0:0:3: [sr3] scsi-1 drive
[ 7.374785] sr 4:0:0:3: Attached scsi CD-ROM sr3
[ 7.375135] sr 4:0:0:3: Attached scsi generic sg13 type 5
[ 7.432403] raid6: int64x2 xor() 2379 MB/s
[ 7.500404] raid6: int64x1 gen() 4420 MB/s
[ 7.568398] raid6: int64x1 xor() 1329 MB/s
[ 7.568399] raid6: using algorithm vpermxor8 gen() 23045 MB/s
[ 7.568400] raid6: using intx1 recovery algorithm
[ 7.569598] xor: measuring software checksum speed
[ 7.608408] 8regs : 16224.000 MB/sec
[ 7.648399] 8regs_prefetch: 14256.000 MB/sec
[ 7.688399] 32regs : 17104.000 MB/sec
[ 7.728396] 32regs_prefetch: 16256.000 MB/sec
[ 7.768399] altivec : 24624.000 MB/sec
[ 7.768400] xor: using function: altivec (24624.000 MB/sec)
[ 7.769509] async_tx: api initialized (async)
[ 7.860183] Btrfs loaded, crc32c=crc32c-vpmsum
[ 7.903361] BTRFS: device fsid 2c3dd738-785a-469b-843e-9f0ba8b47b0d devid 1 transid 963673 /dev/sda2
[ 7.923817] BTRFS info (device sda2): disk space caching is enabled
[ 7.923818] BTRFS info (device sda2): has skinny extents
[ 11.709800] pstore: crypto_comp_decompress failed, ret = -22!
[ 11.725225] systemd[1]: systemd 239 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN2 +IDN -PCRE2 default-hierarchy=hybrid)
[ 11.727771] systemd[1]: Detected architecture ppc64-le.
[ 11.739447] systemd[1]: Set hostname to <flughafenberlinbrandenburgwillybrandt>.
[ 13.864958] systemd[1]: Listening on Journal Socket (/dev/log).
[ 13.865022] systemd[1]: Reached target Swap.
[ 13.865084] systemd[1]: Listening on Device-mapper event daemon FIFOs.
[ 13.865135] systemd[1]: Listening on initctl Compatibility Named Pipe.
[ 13.865144] systemd[1]: Reached target Libvirt guests shutdown.
[ 13.873998] systemd[1]: Listening on LVM2 poll daemon socket.
[ 13.874079] systemd[1]: Listening on LVM2 metadata daemon socket.
[ 13.983839] RPC: Registered named UNIX socket transport module.
[ 13.983841] RPC: Registered udp transport module.
[ 13.983841] RPC: Registered tcp transport module.
[ 13.983842] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 14.090685] BTRFS info (device sda2): disk space caching is enabled
[ 14.133098] Loading iSCSI transport class v2.0-870.
[ 14.204930] iscsi: registered transport (tcp)
[ 14.268258] systemd-journald[1610]: Received request to flush runtime journal from PID 1
[ 14.575034] iscsi: registered transport (iser)
[ 14.817070] Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
[ 14.976516] synth uevent: /devices/vio: failed to send uevent
[ 14.976519] vio vio: uevent: failed to send synthetic uevent
[ 18.031321] powernv_rng: Registered powernv hwrng.
[ 18.273428] IPMI message handler: version 39.2
[ 18.278876] ipmi device interface
[ 18.319817] ipmi-powernv ibm,opal:ipmi: Unable to map irq from device tree
[ 18.322672] at24 0-0051: 16384 byte 24c128 EEPROM, writable, 1 bytes/write
[ 18.323384] at24 0-0052: 256 byte 24c02 EEPROM, writable, 1 bytes/write
[ 18.324169] at24 0-0053: 256 byte 24c02 EEPROM, writable, 1 bytes/write
[ 18.325006] at24 0-0054: 256 byte 24c02 EEPROM, writable, 1 bytes/write
[ 18.325751] at24 0-0055: 256 byte 24c02 EEPROM, writable, 1 bytes/write
[ 18.326967] ipmi-powernv ibm,opal:ipmi: IPMI message handler: Found new BMC (man_id: 0x000000, prod_id: 0xaabb, dev_id: 0x20)
[ 18.357013] at24 1-0050: 16384 byte 24c128 EEPROM, writable, 1 bytes/write
[ 18.357598] at24 1-0052: 256 byte 24c02 EEPROM, writable, 1 bytes/write
[ 18.358198] at24 1-0053: 256 byte 24c02 EEPROM, writable, 1 bytes/write
[ 18.358795] at24 1-0054: 256 byte 24c02 EEPROM, writable, 1 bytes/write
[ 18.359470] at24 1-0055: 256 byte 24c02 EEPROM, writable, 1 bytes/write
[ 18.501031] crypto_register_alg 'aes' = 0
[ 18.510299] crypto_register_alg 'cbc(aes)' = 0
[ 18.527561] crypto_register_alg 'ctr(aes)' = 0
[ 18.534597] crypto_register_alg 'xts(aes)' = 0
[ 20.392235] at24 2-0052: 256 byte 24c02 EEPROM, writable, 1 bytes/write
[ 20.401068] at24 2-0053: 256 byte 24c02 EEPROM, writable, 1 bytes/write
[ 20.411986] at24 2-0054: 256 byte 24c02 EEPROM, writable, 1 bytes/write
[ 20.467704] at24 2-0055: 256 byte 24c02 EEPROM, writable, 1 bytes/write
[ 20.511533] at24 2-0056: 16384 byte 24c128 EEPROM, writable, 1 bytes/write
[ 20.555943] at24 3-0052: 256 byte 24c02 EEPROM, writable, 1 bytes/write
[ 20.596558] at24 3-0053: 256 byte 24c02 EEPROM, writable, 1 bytes/write
[ 20.606709] at24 3-0054: 256 byte 24c02 EEPROM, writable, 1 bytes/write
[ 20.612170] at24 3-0055: 256 byte 24c02 EEPROM, writable, 1 bytes/write
[ 20.619190] at24 3-0057: 16384 byte 24c128 EEPROM, writable, 1 bytes/write
[ 22.650770] at24 4-0051: 16384 byte 24c128 EEPROM, writable, 1 bytes/write
[ 22.711257] at24 4-0052: 256 byte 24c02 EEPROM, writable, 1 bytes/write
[ 22.789792] at24 4-0053: 256 byte 24c02 EEPROM, writable, 1 bytes/write
[ 22.844061] at24 4-0054: 256 byte 24c02 EEPROM, writable, 1 bytes/write
[ 22.888950] at24 4-0055: 256 byte 24c02 EEPROM, writable, 1 bytes/write
[ 24.908756] at24 5-0050: 16384 byte 24c128 EEPROM, writable, 1 bytes/write
[ 24.957386] at24 5-0052: 256 byte 24c02 EEPROM, writable, 1 bytes/write
[ 25.000993] at24 5-0053: 256 byte 24c02 EEPROM, writable, 1 bytes/write
[ 25.005712] at24 5-0054: 256 byte 24c02 EEPROM, writable, 1 bytes/write
[ 25.010852] at24 5-0055: 256 byte 24c02 EEPROM, writable, 1 bytes/write
[ 26.898639] audit: type=1400 audit(1549541666.952:2): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/bin/lxc-start" pid=7485 comm="apparmor_parser"
[ 26.903530] audit: type=1400 audit(1549541666.956:3): apparmor="STATUS" operation="profile_load" profile="unconfined" name="libreoffice-senddoc" pid=7488 comm="apparmor_parser"
[ 26.903589] audit: type=1400 audit(1549541666.956:4): apparmor="STATUS" operation="profile_load" profile="unconfined" name="libreoffice-xpdfimport" pid=7490 comm="apparmor_parser"
[ 26.903755] audit: type=1400 audit(1549541666.956:5): apparmor="STATUS" operation="profile_load" profile="unconfined" name="libreoffice-oopslash" pid=7487 comm="apparmor_parser"
[ 26.938642] audit: type=1400 audit(1549541666.992:6): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/lib/snapd/snap-confine" pid=7492 comm="apparmor_parser"
[ 26.938648] audit: type=1400 audit(1549541666.992:7): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/lib/snapd/snap-confine//mount-namespace-capture-helper" pid=7492 comm="apparmor_parser"
[ 26.985221] audit: type=1400 audit(1549541667.040:8): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/bin/man" pid=7486 comm="apparmor_parser"
[ 26.985227] audit: type=1400 audit(1549541667.040:9): apparmor="STATUS" operation="profile_load" profile="unconfined" name="man_filter" pid=7486 comm="apparmor_parser"
[ 26.985231] audit: type=1400 audit(1549541667.040:10): apparmor="STATUS" operation="profile_load" profile="unconfined" name="man_groff" pid=7486 comm="apparmor_parser"
[ 26.993668] audit: type=1400 audit(1549541667.048:11): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/sbin/libvirtd" pid=7495 comm="apparmor_parser"
[ 27.048874] at24 6-0052: 256 byte 24c02 EEPROM, writable, 1 bytes/write
[ 27.049337] at24 6-0053: 256 byte 24c02 EEPROM, writable, 1 bytes/write
[ 27.049784] at24 6-0054: 256 byte 24c02 EEPROM, writable, 1 bytes/write
[ 27.050215] at24 6-0055: 256 byte 24c02 EEPROM, writable, 1 bytes/write
[ 27.050699] at24 6-0056: 16384 byte 24c128 EEPROM, writable, 1 bytes/write
[ 27.913738] new mount options do not match the existing superblock, will be ignored
[ 29.065248] at24 7-0052: 256 byte 24c02 EEPROM, writable, 1 bytes/write
[ 29.065974] at24 7-0053: 256 byte 24c02 EEPROM, writable, 1 bytes/write
[ 29.066475] at24 7-0054: 256 byte 24c02 EEPROM, writable, 1 bytes/write
[ 29.066984] at24 7-0055: 256 byte 24c02 EEPROM, writable, 1 bytes/write
[ 29.067522] at24 7-0057: 16384 byte 24c128 EEPROM, writable, 1 bytes/write
[ 29.067738] at24 8-0050: 16384 byte 24c128 EEPROM, writable, 1 bytes/write
[ 29.067940] at24 8-0051: 16384 byte 24c128 EEPROM, writable, 1 bytes/write
[ 29.068139] at24 9-0050: 16384 byte 24c128 EEPROM, writable, 1 bytes/write
[ 29.068360] at24 9-0051: 16384 byte 24c128 EEPROM, writable, 1 bytes/write
[ 29.068707] at24 10-0050: 16384 byte 24c128 EEPROM, writable, 1 bytes/write
[ 29.068921] at24 11-0050: 16384 byte 24c128 EEPROM, writable, 1 bytes/write
[ 29.069106] at24 11-0051: 16384 byte 24c128 EEPROM, writable, 1 bytes/write
[ 29.069300] at24 12-0050: 16384 byte 24c128 EEPROM, writable, 1 bytes/write
[ 29.069480] at24 12-0051: 16384 byte 24c128 EEPROM, writable, 1 bytes/write
[ 29.227504] bnx2x 0001:01:00.0 enP1p1s0f0: using MSI-X IRQs: sp 505 fp[0] 507 ... fp[7] 501
[ 30.408640] bnx2x 0001:01:00.0 enP1p1s0f0: NIC Link is Up, 10000 Mbps full duplex, Flow control: ON - receive & transmit
[ 30.408722] IPv6: ADDRCONF(NETDEV_CHANGE): enP1p1s0f0: link becomes ready
[ 31.185613] NFSD: starting 45-second grace period (net f000001f)
[ 39.662846] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
[ 39.665367] virbr0: port 1(virbr0-nic) entered blocking state
[ 39.665375] virbr0: port 1(virbr0-nic) entered disabled state
[ 39.665642] device virbr0-nic entered promiscuous mode
[ 40.027135] virbr0: port 1(virbr0-nic) entered blocking state
[ 40.027140] virbr0: port 1(virbr0-nic) entered listening state
[ 40.860880] bnx2x 0001:01:00.0 enP1p1s0f0: using MSI-X IRQs: sp 505 fp[0] 507 ... fp[7] 501
[ 40.940435] bnx2x 0001:01:00.0 enP1p1s0f0: NIC Link is Up, 10000 Mbps full duplex, Flow control: ON - receive & transmit
[ 41.100148] virbr0: port 1(virbr0-nic) entered disabled state
[402345.975752] kauditd_printk_skb: 35 callbacks suppressed
[402345.975754] audit: type=1400 audit(1549943987.087:47): apparmor="STATUS" operation="profile_replace" info="same as current profile, skipping" profile="unconfined" name="snap.lxd.activate" pid=9342 comm="apparmor_parser"
[402345.975876] audit: type=1400 audit(1549943987.087:48): apparmor="STATUS" operation="profile_replace" info="same as current profile, skipping" profile="unconfined" name="snap.lxd.buginfo" pid=9344 comm="apparmor_parser"
[402345.976106] audit: type=1400 audit(1549943987.087:49): apparmor="STATUS" operation="profile_replace" info="same as current profile, skipping" profile="unconfined" name="snap.lxd.benchmark" pid=9343 comm="apparmor_parser"
[402345.976313] audit: type=1400 audit(1549943987.087:50): apparmor="STATUS" operation="profile_replace" info="same as current profile, skipping" profile="unconfined" name="snap.lxd.daemon" pid=9346 comm="apparmor_parser"
[402345.976691] audit: type=1400 audit(1549943987.087:51): apparmor="STATUS" operation="profile_replace" info="same as current profile, skipping" profile="unconfined" name="snap.lxd.hook.install" pid=9348 comm="apparmor_parser"
[402345.976906] audit: type=1400 audit(1549943987.087:52): apparmor="STATUS" operation="profile_replace" info="same as current profile, skipping" profile="unconfined" name="snap.lxd.check-kernel" pid=9345 comm="apparmor_parser"
[402345.977031] audit: type=1400 audit(1549943987.091:53): apparmor="STATUS" operation="profile_replace" info="same as current profile, skipping" profile="unconfined" name="snap.lxd.lxc" pid=9349 comm="apparmor_parser"
[402345.977673] audit: type=1400 audit(1549943987.091:54): apparmor="STATUS" operation="profile_replace" info="same as current profile, skipping" profile="unconfined" name="snap.lxd.hook.configure" pid=9347 comm="apparmor_parser"
[402345.977830] audit: type=1400 audit(1549943987.091:55): apparmor="STATUS" operation="profile_replace" info="same as current profile, skipping" profile="unconfined" name="snap.lxd.lxd" pid=9350 comm="apparmor_parser"
[402345.978406] audit: type=1400 audit(1549943987.091:56): apparmor="STATUS" operation="profile_replace" info="same as current profile, skipping" profile="unconfined" name="snap.lxd.migrate" pid=9351 comm="apparmor_parser"
[407829.139865] kauditd_printk_skb: 5 callbacks suppressed
[407829.139867] audit: type=1400 audit(1549949470.261:62): apparmor="STATUS" operation="profile_load" profile="unconfined" name="docker-default" pid=21967 comm="apparmor_parser"
[407829.772370] Bridge firewalling registered
[407829.885374] Initializing XFRM netlink socket
[580516.676033] audit: type=1400 audit(1550122158.145:63): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/snapd/snap-confine" pid=41464 comm="apparmor_parser"
[580516.711184] audit: type=1400 audit(1550122158.181:64): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/snapd/snap-confine//mount-namespace-capture-helper" pid=41464 comm="apparmor_parser"
[641129.818991] audit: type=1400 audit(1550182771.409:65): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/snap/core/6407/usr/lib/snapd/snap-confine" pid=10699 comm="apparmor_parser"
[641129.819227] audit: type=1400 audit(1550182771.409:66): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/snap/core/6407/usr/lib/snapd/snap-confine//mount-namespace-capture-helper" pid=10699 comm="apparmor_parser"
[641132.645821] audit: type=1400 audit(1550182774.233:67): apparmor="STATUS" operation="profile_replace" info="same as current profile, skipping" profile="unconfined" name="snap.core.hook.configure" pid=10716 comm="apparmor_parser"
[641132.653932] audit: type=1400 audit(1550182774.241:68): apparmor="STATUS" operation="profile_replace" info="same as current profile, skipping" profile="unconfined" name="snap-update-ns.core" pid=10718 comm="apparmor_parser"
[641132.665124] audit: type=1400 audit(1550182774.253:69): apparmor="STATUS" operation="profile_replace" info="same as current profile, skipping" profile="unconfined" name="snap-update-ns.lxd" pid=10720 comm="apparmor_parser"
[641132.666398] audit: type=1400 audit(1550182774.253:70): apparmor="STATUS" operation="profile_replace" info="same as current profile, skipping" profile="unconfined" name="snap.lxd.activate" pid=10721 comm="apparmor_parser"
[641132.666473] audit: type=1400 audit(1550182774.253:71): apparmor="STATUS" operation="profile_replace" info="same as current profile, skipping" profile="unconfined" name="snap.lxd.hook.configure" pid=10726 comm="apparmor_parser"
[641132.666624] audit: type=1400 audit(1550182774.257:72): apparmor="STATUS" operation="profile_replace" info="same as current profile, skipping" profile="unconfined" name="snap.lxd.check-kernel" pid=10724 comm="apparmor_parser"
[641132.667361] audit: type=1400 audit(1550182774.257:73): apparmor="STATUS" operation="profile_replace" info="same as current profile, skipping" profile="unconfined" name="snap.lxd.benchmark" pid=10722 comm="apparmor_parser"
[641132.667670] audit: type=1400 audit(1550182774.257:74): apparmor="STATUS" operation="profile_replace" info="same as current profile, skipping" profile="unconfined" name="snap.lxd.daemon" pid=10725 comm="apparmor_parser"
[641138.957349] kauditd_printk_skb: 9 callbacks suppressed
[641138.957351] audit: type=1400 audit(1550182780.545:84): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="snap-update-ns.lxd" pid=10869 comm="apparmor_parser"
[641138.964281] audit: type=1400 audit(1550182780.553:85): apparmor="STATUS" operation="profile_replace" info="same as current profile, skipping" profile="unconfined" name="snap.lxd.hook.install" pid=10877 comm="apparmor_parser"
[641138.965039] audit: type=1400 audit(1550182780.553:86): apparmor="STATUS" operation="profile_replace" info="same as current profile, skipping" profile="unconfined" name="snap.lxd.activate" pid=10871 comm="apparmor_parser"
[641138.965093] audit: type=1400 audit(1550182780.553:87): apparmor="STATUS" operation="profile_replace" info="same as current profile, skipping" profile="unconfined" name="snap.lxd.buginfo" pid=10873 comm="apparmor_parser"
[641138.965254] audit: type=1400 audit(1550182780.553:88): apparmor="STATUS" operation="profile_replace" info="same as current profile, skipping" profile="unconfined" name="snap.lxd.lxd" pid=10879 comm="apparmor_parser"
[641138.965482] audit: type=1400 audit(1550182780.553:89): apparmor="STATUS" operation="profile_replace" info="same as current profile, skipping" profile="unconfined" name="snap.lxd.benchmark" pid=10872 comm="apparmor_parser"
[641138.965850] audit: type=1400 audit(1550182780.553:90): apparmor="STATUS" operation="profile_replace" info="same as current profile, skipping" profile="unconfined" name="snap.lxd.migrate" pid=10880 comm="apparmor_parser"
[641138.966109] audit: type=1400 audit(1550182780.553:91): apparmor="STATUS" operation="profile_replace" info="same as current profile, skipping" profile="unconfined" name="snap.lxd.check-kernel" pid=10874 comm="apparmor_parser"
[641138.966261] audit: type=1400 audit(1550182780.553:92): apparmor="STATUS" operation="profile_replace" info="same as current profile, skipping" profile="unconfined" name="snap.lxd.daemon" pid=10875 comm="apparmor_parser"
[641138.966310] audit: type=1400 audit(1550182780.553:93): apparmor="STATUS" operation="profile_replace" info="same as current profile, skipping" profile="unconfined" name="snap.lxd.lxc" pid=10878 comm="apparmor_parser"
[745989.625624] kmemleak: 1 new suspected memory leaks (see /sys/kernel/debug/kmemleak)
[772555.422232] kauditd_printk_skb: 1 callbacks suppressed
[772555.422234] audit: type=1400 audit(1550314197.274:95): apparmor="STATUS" operation="profile_replace" info="same as current profile, skipping" profile="unconfined" name="snap.lxd.check-kernel" pid=119101 comm="apparmor_parser"
[772555.423200] audit: type=1400 audit(1550314197.274:96): apparmor="STATUS" operation="profile_replace" info="same as current profile, skipping" profile="unconfined" name="snap.lxd.activate" pid=119098 comm="apparmor_parser"
[772555.423391] audit: type=1400 audit(1550314197.274:97): apparmor="STATUS" operation="profile_replace" info="same as current profile, skipping" profile="unconfined" name="snap.lxd.benchmark" pid=119099 comm="apparmor_parser"
[772555.423506] audit: type=1400 audit(1550314197.274:98): apparmor="STATUS" operation="profile_replace" info="same as current profile, skipping" profile="unconfined" name="snap.lxd.hook.install" pid=119104 comm="apparmor_parser"
[772555.423566] audit: type=1400 audit(1550314197.274:99): apparmor="STATUS" operation="profile_replace" info="same as current profile, skipping" profile="unconfined" name="snap.lxd.buginfo" pid=119100 comm="apparmor_parser"
[772555.424170] audit: type=1400 audit(1550314197.274:100): apparmor="STATUS" operation="profile_replace" info="same as current profile, skipping" profile="unconfined" name="snap.lxd.daemon" pid=119102 comm="apparmor_parser"
[772555.424469] audit: type=1400 audit(1550314197.274:101): apparmor="STATUS" operation="profile_replace" info="same as current profile, skipping" profile="unconfined" name="snap.lxd.migrate" pid=119107 comm="apparmor_parser"
[772555.424683] audit: type=1400 audit(1550314197.274:102): apparmor="STATUS" operation="profile_replace" info="same as current profile, skipping" profile="unconfined" name="snap.lxd.hook.configure" pid=119103 comm="apparmor_parser"
[772555.425169] audit: type=1400 audit(1550314197.274:103): apparmor="STATUS" operation="profile_replace" info="same as current profile, skipping" profile="unconfined" name="snap.lxd.lxd" pid=119106 comm="apparmor_parser"
[772555.425362] audit: type=1400 audit(1550314197.274:104): apparmor="STATUS" operation="profile_replace" info="same as current profile, skipping" profile="unconfined" name="snap.lxd.lxc" pid=119105 comm="apparmor_parser"
[1002619.951902] kmemleak: 1 new suspected memory leaks (see /sys/kernel/debug/kmemleak)
[1013966.411007] printk: systemd: 47 output lines suppressed due to ratelimiting
[1013966.415270] systemd[1]: systemd 239 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN2 +IDN -PCRE2 default-hierarchy=hybrid)
[1013966.416477] systemd[1]: Detected architecture ppc64-le.
[1013967.076048] systemd[1]: Stopping Journal Service...
[1013967.076145] systemd-journald[1610]: Received SIGTERM from PID 1 (systemd).
[1013969.648899] systemd[1]: Stopped Journal Service.
[1013969.658442] systemd[1]: Starting Journal Service...
[1013971.242693] systemd[1]: Started Journal Service.
[1026650.073797] kauditd_printk_skb: 5 callbacks suppressed
[1026650.073799] audit: type=1400 audit(1550568292.457:110): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/snapd/snap-confine" pid=146345 comm="apparmor_parser"
[1026650.103530] audit: type=1400 audit(1550568292.489:111): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/snapd/snap-confine//mount-namespace-capture-helper" pid=146345 comm="apparmor_parser"
[-- Attachment #2: S/MIME Cryptographic Signature --]
[-- Type: application/pkcs7-signature, Size: 5174 bytes --]
^ permalink raw reply
* Re: [PATCH] powerpc: fix 32-bit KVM-PR lockup and panic with MacOS guest
From: Mark Cave-Ayland @ 2019-02-19 8:15 UTC (permalink / raw)
To: Michael Ellerman, Benjamin Herrenschmidt, Christophe Leroy,
paulus, npiggin, linuxppc-dev, linux-kernel, kvm-ppc
In-Reply-To: <87mumsbcnl.fsf@concordia.ellerman.id.au>
On 19/02/2019 04:55, Michael Ellerman wrote:
> Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> writes:
>> On 11/02/2019 00:30, Benjamin Herrenschmidt wrote:
>>
>>> On Fri, 2019-02-08 at 14:51 +0000, Mark Cave-Ayland wrote:
>>>>
>>>> Indeed, but there are still some questions to be asked here:
>>>>
>>>> 1) Why were these bits removed from the original bitmask in the first place without
>>>> it being documented in the commit message?
>>>>
>>>> 2) Is this the right fix? I'm told that MacOS guests already run without this patch
>>>> on a G5 under 64-bit KVM-PR which may suggest that this is a workaround for another
>>>> bug elsewhere in the 32-bit powerpc code.
>>>>
>>>>
>>>> If you think that these points don't matter, then I'm happy to resubmit the patch
>>>> as-is based upon your comments above.
>>>
>>> We should write a test case to verify that FE0/FE1 are properly
>>> preserved/context-switched etc... I bet if we accidentally wiped them,
>>> we wouldn't notice 99.9% of the time.
>>
>> Right I guess it's more likely to cause in issue in the KVM PR case because the guest
>> can alter the flags in a way that doesn't go through the normal process switch mechanism.
>>
>> The original patchset at
>> https://www.mail-archive.com/linuxppc-dev@lists.ozlabs.org/msg98326.html does include
>> some tests in the first few patches, but AFAICT they are concerned with the contents
>> of the FP registers rather than the related MSRs.
>
> fpu_preempt.c should be able to be adapted to also check the MSR bits.
>
>> Who is the right person to ask about fixing issues related to context switching with
>> KVM PR?
>
> KVM PR doesn't really have a maintainer TBH. Feel like volunteering? :)
Well I only have a 32-bit Mac Mini here which I'm using to help flush out bugs in
QEMU's emulation, so I can keep an occasional eye on the 32-bit side of things but as
it's a hobby project time is quite limited.
As/when time allows I'd be interested to figure out what MacOS 9 does that causes KVM
PR to bail, and if it's possible to run KVM PR on an SMP kernel but certainly I'd
need some help from the very knowledgable people on these lists.
>> I did add the original author's email address to my first few emails but have
>> had no response back :/
>
> Cyril who wrote the original FPU patch has moved on to other things.
Ah okay then.
ATB,
Mark.
^ permalink raw reply
* Re: [PATCH] powerpc: fix 32-bit KVM-PR lockup and panic with MacOS guest
From: Mark Cave-Ayland @ 2019-02-19 7:55 UTC (permalink / raw)
To: Michael Ellerman, Christophe Leroy, benh, paulus, npiggin,
linuxppc-dev, linux-kernel, kvm-ppc
In-Reply-To: <87pnrobe9m.fsf@concordia.ellerman.id.au>
On 19/02/2019 04:20, Michael Ellerman wrote:
Hi Michael,
> Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> writes:
>> On 08/02/2019 14:45, Christophe Leroy wrote:
>>
>>> Le 08/02/2019 à 15:33, Mark Cave-Ayland a écrit :
>>>> Commit 8792468da5e1 "powerpc: Add the ability to save FPU without giving it up"
>>>
>>> Expected format for the above is:
>>>
>>> Commit 123456789abc ("text")
>>
>> Hi Christophe,
>>
>> Apologies - I'm fairly new at submitting kernel patches, but I can re-send it in the
>> correct format later if required.
>>
>>>> unexpectedly removed the MSR_FE0 and MSR_FE1 bits from the bitmask used to
>>>> update the MSR of the previous thread in __giveup_fpu() causing a KVM-PR MacOS
>>>> guest to lockup and panic the kernel.
>
> Which kernel is panicking? The guest or the host?
It's the host kernel. As long as you occasionally tap a few keys to keep the screen
blanking disabled then you can see the panic on the physical console.
I've uploaded a photo I took during the bisection containing the panic when booting
MacOS X 10.2 under qemu-system-ppc to
https://www.ilande.co.uk/tmp/qemu/macmini-kvm.jpg in case you find it useful.
Given that it's really easy to recreate, let me know if you want me to do a git
pull/rebuild and/or if you need any debugging information as it's easy for me to
reproduce.
>>>> Reinstate these bits to the MSR bitmask to enable MacOS guests to run under
>>>> 32-bit KVM-PR once again without issue.
>>>>
>>>> Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
>>>
>>> Should include a Fixes: and a Cc to stable ?
>>>
>>> Fixes: 8792468da5e1 ("powerpc: Add the ability to save FPU without giving it up")
>>> Cc: stable@vger.kernel.org
>>
>> Indeed, but there are still some questions to be asked here:
>>
>> 1) Why were these bits removed from the original bitmask in the first place without
>> it being documented in the commit message?
>
> It was almost certainly an accident.
Heh, okay :)
>> 2) Is this the right fix? I'm told that MacOS guests already run without this patch
>> on a G5 under 64-bit KVM-PR which may suggest that this is a workaround for another
>> bug elsewhere in the 32-bit powerpc code.
>
> That's slightly worrying. It's hard to say without more detail on why
> the guest is crashing.
>
> I think your patch looks OK based just on the fact that it restores the
> previous behaviour, so I'll pick it up and pass it through my usual
> testing. If nothing breaks I'll merge it.
That would be great! Does it need a CC to stable too? It would be great if this would
get picked up in the next set of Debian ports kernels, for example.
ATB,
Mark.
^ permalink raw reply
* Re: [RFC PATCH 2/2] powerpc/mm/hash64: Map all the kernel mapping in the same 0xc range
From: Nicholas Piggin @ 2019-02-19 7:01 UTC (permalink / raw)
To: Akshay Adiga, Aneesh Kumar K.V, benh, Daniel Axtens, mpe, paulus
Cc: linuxppc-dev
In-Reply-To: <61b935a8-6fb2-e1ec-15cb-fbe4f293fe80@linux.ibm.com>
Aneesh Kumar K.V's on February 19, 2019 4:00 pm:
> On 2/19/19 11:28 AM, Nicholas Piggin wrote:
>> Aneesh Kumar K.V's on February 17, 2019 3:16 pm:
>>> This patch maps vmap, IO and vmemap regions in the 0xc address range
>>> instead of the current 0xd and 0xf range. This brings the mapping closer
>>> to radix translation mode.
>>
>> What was the reason for that address layout in the first place?
>>
>
> To bring in closer to radix translation mode and it should also help
> with KASAN implementation.
No I mean the old implementation. Your change seems fine, it would just
be good to know what the downside (if any) is from changing. Maybe it
was just to make debugging slightly simpler?
Thanks,
Nick
^ permalink raw reply
* RE: [PATCHv6 1/4] dt-bindings: add DT binding for the layerscape PCIe controller with EP mode
From: Xiaowei Bao @ 2019-02-19 6:57 UTC (permalink / raw)
To: Lorenzo Pieralisi
Cc: mark.rutland@arm.com, Roy Zang, arnd@arndb.de,
devicetree@vger.kernel.org, gregkh@linuxfoundation.org,
kstewart@linuxfoundation.org, linuxppc-dev@lists.ozlabs.org,
linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org,
kishon@ti.com, M.h. Lian, robh+dt@kernel.org,
cyrille.pitchen@free-electrons.com,
linux-arm-kernel@lists.infradead.org, pombredanne@nexb.com,
bhelgaas@google.com, Leo Li, shawnguo@kernel.org,
shawn.lin@rock-chips.com, Mingkai Hu
In-Reply-To: <20190205180247.GA13891@e107981-ln.cambridge.arm.com>
-----Original Message-----
From: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Sent: 2019年2月6日 2:03
To: Xiaowei Bao <xiaowei.bao@nxp.com>
Cc: bhelgaas@google.com; robh+dt@kernel.org; mark.rutland@arm.com; shawnguo@kernel.org; Leo Li <leoyang.li@nxp.com>; kishon@ti.com; arnd@arndb.de; gregkh@linuxfoundation.org; M.h. Lian <minghuan.lian@nxp.com>; Mingkai Hu <mingkai.hu@nxp.com>; Roy Zang <roy.zang@nxp.com>; kstewart@linuxfoundation.org; cyrille.pitchen@free-electrons.com; pombredanne@nexb.com; shawn.lin@rock-chips.com; linux-pci@vger.kernel.org; devicetree@vger.kernel.org; linux-kernel@vger.kernel.org; linux-arm-kernel@lists.infradead.org; linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCHv6 1/4] dt-bindings: add DT binding for the layerscape PCIe controller with EP mode
On Tue, Jan 22, 2019 at 02:33:25PM +0800, Xiaowei Bao wrote:
> Add the documentation for the Device Tree binding for the layerscape
> PCIe controller with EP mode.
>
> Signed-off-by: Xiaowei Bao <xiaowei.bao@nxp.com>
> Reviewed-by: Minghuan Lian <minghuan.lian@nxp.com>
> Reviewed-by: Zhiqiang Hou <zhiqiang.hou@nxp.com>
> Reviewed-by: Rob Herring <robh+dt@kernel.org>
> ---
> v2:
> - Add the SoC specific compatibles.
> v3:
> - modify the commit message.
> v4:
> - no change.
> v5:
> - no change.
> v6:
> - no change.
>
> .../devicetree/bindings/pci/layerscape-pci.txt | 3 +++
> 1 files changed, 3 insertions(+), 0 deletions(-)
Applied the series to pci/layerscape for v5.1, thanks.
[Xiaowei Bao] Hi Lorenzo, thank a lot.
Lorenzo
> diff --git a/Documentation/devicetree/bindings/pci/layerscape-pci.txt
> b/Documentation/devicetree/bindings/pci/layerscape-pci.txt
> index 9b2b8d6..e20ceaa 100644
> --- a/Documentation/devicetree/bindings/pci/layerscape-pci.txt
> +++ b/Documentation/devicetree/bindings/pci/layerscape-pci.txt
> @@ -13,6 +13,7 @@ information.
>
> Required properties:
> - compatible: should contain the platform identifier such as:
> + RC mode:
> "fsl,ls1021a-pcie"
> "fsl,ls2080a-pcie", "fsl,ls2085a-pcie"
> "fsl,ls2088a-pcie"
> @@ -20,6 +21,8 @@ Required properties:
> "fsl,ls1046a-pcie"
> "fsl,ls1043a-pcie"
> "fsl,ls1012a-pcie"
> + EP mode:
> + "fsl,ls1046a-pcie-ep", "fsl,ls-pcie-ep"
> - reg: base addresses and lengths of the PCIe controller register blocks.
> - interrupts: A list of interrupt outputs of the controller. Must contain an
> entry for each entry in the interrupt-names property.
> --
> 1.7.1
>
^ permalink raw reply
* Re: [RFC PATCH 5/5] powerpc: KASAN for 64bit Book3E
From: Daniel Axtens @ 2019-02-19 6:37 UTC (permalink / raw)
To: Dmitry Vyukov
Cc: Aneesh Kumar K.V, kasan-dev, Aneesh Kumar K . V, linuxppc-dev
In-Reply-To: <CACT4Y+ZmVs+n7xUeQvZO7Pjabg0LtgzhU=s6CPkeMrs9MV1wwA@mail.gmail.com>
Dmitry Vyukov <dvyukov@google.com> writes:
> On Fri, Feb 15, 2019 at 1:05 AM Daniel Axtens <dja@axtens.net> wrote:
>>
>> Wire up KASAN. Only outline instrumentation is supported.
>>
>> The KASAN shadow area is mapped into vmemmap space:
>> 0x8000 0400 0000 0000 to 0x8000 0600 0000 0000.
>> To do this we require that vmemmap be disabled. (This is the default
>> in the kernel config that QorIQ provides for the machine in their
>> SDK anyway - they use flat memory.)
>>
>> Only the kernel linear mapping (0xc000...) is checked. The vmalloc and
>> ioremap areas (also in 0x800...) are all mapped to a zero page. As
>> with the Book3S hash series, this requires overriding the memory <->
>> shadow mapping.
>>
>> Also, as with both previous 64-bit series, early instrumentation is not
>> supported. It would allow us to drop the check_return_arch_not_ready()
>> hook in the KASAN core, but it's tricky to get it set up early enough:
>> we need it setup before the first call to instrumented code like printk().
>> Perhaps in the future.
>>
>> Only KASAN_MINIMAL works.
>>
>> Lightly tested on e6500. KVM, kexec and xmon have not been tested.
>
> Hi Daniel,
>
> This is great!
>
> Not related to the patch, but if you booted a real devices and used it
> to some degree, I wonder if you hit any KASAN reports?
Not yet, but the hope is that I will be able to extend this to book3s
and then it will be more useful in combination with syzkaller.
Regards,
Daniel
>
> Thanks
>
>> The test_kasan module fires warnings as expected, except for the
>> following tests:
>>
>> - Expected/by design:
>> kasan test: memcg_accounted_kmem_cache allocate memcg accounted object
>>
>> - Due to only supporting KASAN_MINIMAL:
>> kasan test: kasan_stack_oob out-of-bounds on stack
>> kasan test: kasan_global_oob out-of-bounds global variable
>> kasan test: kasan_alloca_oob_left out-of-bounds to left on alloca
>> kasan test: kasan_alloca_oob_right out-of-bounds to right on alloca
>> kasan test: use_after_scope_test use-after-scope on int
>> kasan test: use_after_scope_test use-after-scope on array
>>
>> Thanks to those who have done the heavy lifting over the past several years:
>> - Christophe's 32 bit series: https://lists.ozlabs.org/pipermail/linuxppc-dev/2019-February/185379.html
>> - Aneesh's Book3S hash series: https://lwn.net/Articles/655642/
>> - Balbir's Book3S radix series: https://patchwork.ozlabs.org/patch/795211/
>>
>> Cc: Christophe Leroy <christophe.leroy@c-s.fr>
>> Cc: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
>> Cc: Balbir Singh <bsingharora@gmail.com>
>> Signed-off-by: Daniel Axtens <dja@axtens.net>
>>
>> ---
>>
>> While useful if you have a book3e device, this is mostly intended
>> as a warm-up exercise for reviving Aneesh's series for book3s hash.
>> In particular, changes to the kasan core are going to be required
>> for hash and radix as well.
>> ---
>> arch/powerpc/Kconfig | 1 +
>> arch/powerpc/Makefile | 2 +
>> arch/powerpc/include/asm/kasan.h | 77 ++++++++++++++++++--
>> arch/powerpc/include/asm/ppc_asm.h | 7 ++
>> arch/powerpc/include/asm/string.h | 7 +-
>> arch/powerpc/lib/mem_64.S | 6 +-
>> arch/powerpc/lib/memcmp_64.S | 5 +-
>> arch/powerpc/lib/memcpy_64.S | 3 +-
>> arch/powerpc/lib/string.S | 15 ++--
>> arch/powerpc/mm/Makefile | 2 +
>> arch/powerpc/mm/kasan/Makefile | 1 +
>> arch/powerpc/mm/kasan/kasan_init_book3e_64.c | 53 ++++++++++++++
>> arch/powerpc/purgatory/Makefile | 3 +
>> arch/powerpc/xmon/Makefile | 1 +
>> 14 files changed, 164 insertions(+), 19 deletions(-)
>> create mode 100644 arch/powerpc/mm/kasan/kasan_init_book3e_64.c
>>
>> diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
>> index 850b06def84f..2c7c20d52778 100644
>> --- a/arch/powerpc/Kconfig
>> +++ b/arch/powerpc/Kconfig
>> @@ -176,6 +176,7 @@ config PPC
>> select HAVE_ARCH_AUDITSYSCALL
>> select HAVE_ARCH_JUMP_LABEL
>> select HAVE_ARCH_KASAN if PPC32
>> + select HAVE_ARCH_KASAN if PPC_BOOK3E_64 && !SPARSEMEM_VMEMMAP
>> select HAVE_ARCH_KGDB
>> select HAVE_ARCH_MMAP_RND_BITS
>> select HAVE_ARCH_MMAP_RND_COMPAT_BITS if COMPAT
>> diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
>> index f0738099e31e..21c2dadf0315 100644
>> --- a/arch/powerpc/Makefile
>> +++ b/arch/powerpc/Makefile
>> @@ -428,11 +428,13 @@ endif
>> endif
>>
>> ifdef CONFIG_KASAN
>> +ifdef CONFIG_PPC32
>> prepare: kasan_prepare
>>
>> kasan_prepare: prepare0
>> $(eval KASAN_SHADOW_OFFSET = $(shell awk '{if ($$2 == "KASAN_SHADOW_OFFSET") print $$3;}' include/generated/asm-offsets.h))
>> endif
>> +endif
>>
>> # Check toolchain versions:
>> # - gcc-4.6 is the minimum kernel-wide version so nothing required.
>> diff --git a/arch/powerpc/include/asm/kasan.h b/arch/powerpc/include/asm/kasan.h
>> index 5d0088429b62..c2f6f05dfaa3 100644
>> --- a/arch/powerpc/include/asm/kasan.h
>> +++ b/arch/powerpc/include/asm/kasan.h
>> @@ -5,20 +5,85 @@
>> #ifndef __ASSEMBLY__
>>
>> #include <asm/page.h>
>> +#include <asm/pgtable.h>
>> #include <asm/pgtable-types.h>
>> -#include <asm/fixmap.h>
>>
>> #define KASAN_SHADOW_SCALE_SHIFT 3
>> -#define KASAN_SHADOW_SIZE ((~0UL - PAGE_OFFSET + 1) >> KASAN_SHADOW_SCALE_SHIFT)
>>
>> -#define KASAN_SHADOW_START (ALIGN_DOWN(FIXADDR_START - KASAN_SHADOW_SIZE, \
>> - PGDIR_SIZE))
>> -#define KASAN_SHADOW_END (KASAN_SHADOW_START + KASAN_SHADOW_SIZE)
>> #define KASAN_SHADOW_OFFSET (KASAN_SHADOW_START - \
>> (PAGE_OFFSET >> KASAN_SHADOW_SCALE_SHIFT))
>> +#define KASAN_SHADOW_END (KASAN_SHADOW_START + KASAN_SHADOW_SIZE)
>> +
>> +
>> +#ifdef CONFIG_PPC32
>> +#include <asm/fixmap.h>
>> +#define KASAN_SHADOW_START (ALIGN_DOWN(FIXADDR_START - KASAN_SHADOW_SIZE, \
>> + PGDIR_SIZE))
>> +#define KASAN_SHADOW_SIZE ((~0UL - PAGE_OFFSET + 1) >> KASAN_SHADOW_SCALE_SHIFT)
>>
>> void kasan_early_init(void);
>> +
>> +#endif /* CONFIG_PPC32 */
>> +
>> +#ifdef CONFIG_PPC_BOOK3E_64
>> +#define KASAN_SHADOW_START VMEMMAP_BASE
>> +#define KASAN_SHADOW_SIZE (KERN_VIRT_SIZE >> KASAN_SHADOW_SCALE_SHIFT)
>> +
>> +extern struct static_key_false powerpc_kasan_enabled_key;
>> +#define check_return_arch_not_ready() \
>> + do { \
>> + if (!static_branch_likely(&powerpc_kasan_enabled_key)) \
>> + return; \
>> + } while (0)
>> +
>> +extern unsigned char kasan_zero_page[PAGE_SIZE];
>> +static inline void *kasan_mem_to_shadow_book3e(const void *addr)
>> +{
>> + if ((unsigned long)addr >= KERN_VIRT_START &&
>> + (unsigned long)addr < (KERN_VIRT_START + KERN_VIRT_SIZE)) {
>> + return (void *)kasan_zero_page;
>> + }
>> +
>> + return (void *)((unsigned long)addr >> KASAN_SHADOW_SCALE_SHIFT)
>> + + KASAN_SHADOW_OFFSET;
>> +}
>> +#define kasan_mem_to_shadow kasan_mem_to_shadow_book3e
>> +
>> +static inline void *kasan_shadow_to_mem_book3e(const void *shadow_addr)
>> +{
>> + /*
>> + * We map the entire non-linear virtual mapping onto the zero page so if
>> + * we are asked to map the zero page back just pick the beginning of that
>> + * area.
>> + */
>> + if (shadow_addr >= (void *)kasan_zero_page &&
>> + shadow_addr < (void *)(kasan_zero_page + PAGE_SIZE)) {
>> + return (void *)KERN_VIRT_START;
>> + }
>> +
>> + return (void *)(((unsigned long)shadow_addr - KASAN_SHADOW_OFFSET)
>> + << KASAN_SHADOW_SCALE_SHIFT);
>> +}
>> +#define kasan_shadow_to_mem kasan_shadow_to_mem_book3e
>> +
>> +static inline bool kasan_addr_has_shadow_book3e(const void *addr)
>> +{
>> + /*
>> + * We want to specifically assert that the addresses in the 0x8000...
>> + * region have a shadow, otherwise they are considered by the kasan
>> + * core to be wild pointers
>> + */
>> + if ((unsigned long)addr >= KERN_VIRT_START &&
>> + (unsigned long)addr < (KERN_VIRT_START + KERN_VIRT_SIZE)) {
>> + return true;
>> + }
>> + return (addr >= kasan_shadow_to_mem((void *)KASAN_SHADOW_START));
>> +}
>> +#define kasan_addr_has_shadow kasan_addr_has_shadow_book3e
>> +
>> +#endif /* CONFIG_PPC_BOOK3E_64 */
>> +
>> void kasan_init(void);
>>
>> -#endif
>> +#endif /* CONFIG_KASAN */
>> #endif
>> diff --git a/arch/powerpc/include/asm/ppc_asm.h b/arch/powerpc/include/asm/ppc_asm.h
>> index dba2c1038363..fd7c9fa9d307 100644
>> --- a/arch/powerpc/include/asm/ppc_asm.h
>> +++ b/arch/powerpc/include/asm/ppc_asm.h
>> @@ -251,10 +251,17 @@ GLUE(.,name):
>>
>> #define _GLOBAL_TOC(name) _GLOBAL(name)
>>
>> +#endif /* 32-bit */
>> +
>> +/* KASAN helpers */
>> #define KASAN_OVERRIDE(x, y) \
>> .weak x; \
>> .set x, y
>>
>> +#ifdef CONFIG_KASAN
>> +#define EXPORT_SYMBOL_NOKASAN(x)
>> +#else
>> +#define EXPORT_SYMBOL_NOKASAN(x) EXPORT_SYMBOL(x)
>> #endif
>>
>> /*
>> diff --git a/arch/powerpc/include/asm/string.h b/arch/powerpc/include/asm/string.h
>> index 64d44d4836b4..e2801d517d57 100644
>> --- a/arch/powerpc/include/asm/string.h
>> +++ b/arch/powerpc/include/asm/string.h
>> @@ -4,13 +4,16 @@
>>
>> #ifdef __KERNEL__
>>
>> +#ifndef CONFIG_KASAN
>> #define __HAVE_ARCH_STRNCPY
>> #define __HAVE_ARCH_STRNCMP
>> +#define __HAVE_ARCH_MEMCHR
>> +#define __HAVE_ARCH_MEMCMP
>> +#endif
>> +
>> #define __HAVE_ARCH_MEMSET
>> #define __HAVE_ARCH_MEMCPY
>> #define __HAVE_ARCH_MEMMOVE
>> -#define __HAVE_ARCH_MEMCMP
>> -#define __HAVE_ARCH_MEMCHR
>> #define __HAVE_ARCH_MEMSET16
>> #define __HAVE_ARCH_MEMCPY_FLUSHCACHE
>>
>> diff --git a/arch/powerpc/lib/mem_64.S b/arch/powerpc/lib/mem_64.S
>> index 3c3be02f33b7..3ff4c6b45505 100644
>> --- a/arch/powerpc/lib/mem_64.S
>> +++ b/arch/powerpc/lib/mem_64.S
>> @@ -30,7 +30,8 @@ EXPORT_SYMBOL(__memset16)
>> EXPORT_SYMBOL(__memset32)
>> EXPORT_SYMBOL(__memset64)
>>
>> -_GLOBAL(memset)
>> +_GLOBAL(__memset)
>> +KASAN_OVERRIDE(memset, __memset)
>> neg r0,r3
>> rlwimi r4,r4,8,16,23
>> andi. r0,r0,7 /* # bytes to be 8-byte aligned */
>> @@ -97,7 +98,8 @@ _GLOBAL(memset)
>> blr
>> EXPORT_SYMBOL(memset)
>>
>> -_GLOBAL_TOC(memmove)
>> +_GLOBAL_TOC(__memmove)
>> +KASAN_OVERRIDE(memmove, __memmove)
>> cmplw 0,r3,r4
>> bgt backwards_memcpy
>> b memcpy
>> diff --git a/arch/powerpc/lib/memcmp_64.S b/arch/powerpc/lib/memcmp_64.S
>> index 844d8e774492..21aee60de2cd 100644
>> --- a/arch/powerpc/lib/memcmp_64.S
>> +++ b/arch/powerpc/lib/memcmp_64.S
>> @@ -102,7 +102,8 @@
>> * 2) src/dst has different offset to the 8 bytes boundary. The handlers
>> * are named like .Ldiffoffset_xxxx
>> */
>> -_GLOBAL_TOC(memcmp)
>> +_GLOBAL_TOC(__memcmp)
>> +KASAN_OVERRIDE(memcmp, __memcmp)
>> cmpdi cr1,r5,0
>>
>> /* Use the short loop if the src/dst addresses are not
>> @@ -630,4 +631,4 @@ END_FTR_SECTION_IFSET(CPU_FTR_ARCH_207S)
>> b .Lcmp_lt32bytes
>>
>> #endif
>> -EXPORT_SYMBOL(memcmp)
>> +EXPORT_SYMBOL_NOKASAN(memcmp)
>> diff --git a/arch/powerpc/lib/memcpy_64.S b/arch/powerpc/lib/memcpy_64.S
>> index 273ea67e60a1..e9092a0e531a 100644
>> --- a/arch/powerpc/lib/memcpy_64.S
>> +++ b/arch/powerpc/lib/memcpy_64.S
>> @@ -18,7 +18,8 @@
>> #endif
>>
>> .align 7
>> -_GLOBAL_TOC(memcpy)
>> +_GLOBAL_TOC(__memcpy)
>> +KASAN_OVERRIDE(memcpy, __memcpy)
>> BEGIN_FTR_SECTION
>> #ifdef __LITTLE_ENDIAN__
>> cmpdi cr7,r5,0
>> diff --git a/arch/powerpc/lib/string.S b/arch/powerpc/lib/string.S
>> index 4b41970e9ed8..09deaac6e5f1 100644
>> --- a/arch/powerpc/lib/string.S
>> +++ b/arch/powerpc/lib/string.S
>> @@ -16,7 +16,8 @@
>>
>> /* This clears out any unused part of the destination buffer,
>> just as the libc version does. -- paulus */
>> -_GLOBAL(strncpy)
>> +_GLOBAL(__strncpy)
>> +KASAN_OVERRIDE(strncpy, __strncpy)
>> PPC_LCMPI 0,r5,0
>> beqlr
>> mtctr r5
>> @@ -34,9 +35,10 @@ _GLOBAL(strncpy)
>> 2: stbu r0,1(r6) /* clear it out if so */
>> bdnz 2b
>> blr
>> -EXPORT_SYMBOL(strncpy)
>> +EXPORT_SYMBOL_NOKASAN(strncpy)
>>
>> -_GLOBAL(strncmp)
>> +_GLOBAL(__strncmp)
>> +KASAN_OVERRIDE(strncmp, __strncmp)
>> PPC_LCMPI 0,r5,0
>> beq- 2f
>> mtctr r5
>> @@ -52,9 +54,10 @@ _GLOBAL(strncmp)
>> blr
>> 2: li r3,0
>> blr
>> -EXPORT_SYMBOL(strncmp)
>> +EXPORT_SYMBOL_NOKASAN(strncmp)
>>
>> -_GLOBAL(memchr)
>> +_GLOBAL(__memchr)
>> +KASAN_OVERRIDE(memchr, __memchr)
>> PPC_LCMPI 0,r5,0
>> beq- 2f
>> mtctr r5
>> @@ -66,4 +69,4 @@ _GLOBAL(memchr)
>> beqlr
>> 2: li r3,0
>> blr
>> -EXPORT_SYMBOL(memchr)
>> +EXPORT_SYMBOL_NOKASAN(memchr)
>> diff --git a/arch/powerpc/mm/Makefile b/arch/powerpc/mm/Makefile
>> index 457c0ea2b5e7..d974f7bcb177 100644
>> --- a/arch/powerpc/mm/Makefile
>> +++ b/arch/powerpc/mm/Makefile
>> @@ -7,6 +7,8 @@ ccflags-$(CONFIG_PPC64) := $(NO_MINIMAL_TOC)
>>
>> CFLAGS_REMOVE_slb.o = $(CC_FLAGS_FTRACE)
>>
>> +KASAN_SANITIZE_fsl_booke_mmu.o := n
>> +
>> obj-y := fault.o mem.o pgtable.o mmap.o \
>> init_$(BITS).o pgtable_$(BITS).o \
>> init-common.o mmu_context.o drmem.o
>> diff --git a/arch/powerpc/mm/kasan/Makefile b/arch/powerpc/mm/kasan/Makefile
>> index 6577897673dd..f8f164ad8ade 100644
>> --- a/arch/powerpc/mm/kasan/Makefile
>> +++ b/arch/powerpc/mm/kasan/Makefile
>> @@ -3,3 +3,4 @@
>> KASAN_SANITIZE := n
>>
>> obj-$(CONFIG_PPC32) += kasan_init_32.o
>> +obj-$(CONFIG_PPC_BOOK3E_64) += kasan_init_book3e_64.o
>> diff --git a/arch/powerpc/mm/kasan/kasan_init_book3e_64.c b/arch/powerpc/mm/kasan/kasan_init_book3e_64.c
>> new file mode 100644
>> index 000000000000..93b9afcf1020
>> --- /dev/null
>> +++ b/arch/powerpc/mm/kasan/kasan_init_book3e_64.c
>> @@ -0,0 +1,53 @@
>> +// SPDX-License-Identifier: GPL-2.0
>> +
>> +#define DISABLE_BRANCH_PROFILING
>> +
>> +#include <linux/kasan.h>
>> +#include <linux/printk.h>
>> +#include <linux/memblock.h>
>> +#include <linux/sched/task.h>
>> +#include <asm/pgalloc.h>
>> +
>> +DEFINE_STATIC_KEY_FALSE(powerpc_kasan_enabled_key);
>> +EXPORT_SYMBOL(powerpc_kasan_enabled_key);
>> +unsigned char kasan_zero_page[PAGE_SIZE] __page_aligned_bss;
>> +
>> +static void __init kasan_init_region(struct memblock_region *reg)
>> +{
>> + void *start = __va(reg->base);
>> + void *end = __va(reg->base + reg->size);
>> + unsigned long k_start, k_end, k_cur;
>> +
>> + if (start >= end)
>> + return;
>> +
>> + k_start = (unsigned long)kasan_mem_to_shadow(start);
>> + k_end = (unsigned long)kasan_mem_to_shadow(end);
>> +
>> + for (k_cur = k_start; k_cur < k_end; k_cur += PAGE_SIZE) {
>> + void *va = memblock_alloc(PAGE_SIZE, PAGE_SIZE);
>> + map_kernel_page(k_cur, __pa(va), PAGE_KERNEL);
>> + }
>> + flush_tlb_kernel_range(k_start, k_end);
>> +}
>> +
>> +void __init kasan_init(void)
>> +{
>> + struct memblock_region *reg;
>> +
>> + for_each_memblock(memory, reg)
>> + kasan_init_region(reg);
>> +
>> + /* map the zero page RO */
>> + map_kernel_page((unsigned long)kasan_zero_page,
>> + __pa(kasan_zero_page), PAGE_KERNEL_RO);
>> +
>> + kasan_init_tags();
>> +
>> + /* Turn on checking */
>> + static_branch_inc(&powerpc_kasan_enabled_key);
>> +
>> + /* Enable error messages */
>> + init_task.kasan_depth = 0;
>> + pr_info("KASAN init done (64-bit Book3E)\n");
>> +}
>> diff --git a/arch/powerpc/purgatory/Makefile b/arch/powerpc/purgatory/Makefile
>> index 4314ba5baf43..7c6d8b14f440 100644
>> --- a/arch/powerpc/purgatory/Makefile
>> +++ b/arch/powerpc/purgatory/Makefile
>> @@ -1,4 +1,7 @@
>> # SPDX-License-Identifier: GPL-2.0
>> +
>> +KASAN_SANITIZE := n
>> +
>> targets += trampoline.o purgatory.ro kexec-purgatory.c
>>
>> LDFLAGS_purgatory.ro := -e purgatory_start -r --no-undefined
>> diff --git a/arch/powerpc/xmon/Makefile b/arch/powerpc/xmon/Makefile
>> index 878f9c1d3615..064f7062c0a3 100644
>> --- a/arch/powerpc/xmon/Makefile
>> +++ b/arch/powerpc/xmon/Makefile
>> @@ -6,6 +6,7 @@ subdir-ccflags-y := $(call cc-disable-warning, builtin-requires-header)
>>
>> GCOV_PROFILE := n
>> UBSAN_SANITIZE := n
>> +KASAN_SANITIZE := n
>>
>> # Disable ftrace for the entire directory
>> ORIG_CFLAGS := $(KBUILD_CFLAGS)
>> --
>> 2.19.1
>>
>> --
>> You received this message because you are subscribed to the Google Groups "kasan-dev" group.
>> To unsubscribe from this group and stop receiving emails from it, send an email to kasan-dev+unsubscribe@googlegroups.com.
>> To post to this group, send email to kasan-dev@googlegroups.com.
>> To view this discussion on the web visit https://groups.google.com/d/msgid/kasan-dev/20190215000441.14323-6-dja%40axtens.net.
>> For more options, visit https://groups.google.com/d/optout.
^ permalink raw reply
* Re: [RFC PATCH 0/5] powerpc: KASAN for 64-bit Book3E
From: Daniel Axtens @ 2019-02-19 6:35 UTC (permalink / raw)
To: Balbir Singh; +Cc: aneesh.kumar, linuxppc-dev, kasan-dev
In-Reply-To: <20190217063454.GD31125@350D>
Hi Balbir,
> Thanks for following through with this, could you please share details on
> how you've been testing this?
>
> I know qemu supports qemu -cpu e6500, but beyond that what does the machine
> look like?
I've been using a T4240RDB, so real hardware. It boots both the QorIQ
Yocto-based distro and Debian ppc64. I have run parts of kselftest and
am currently running LTP - so far no errors have triggered.
Regards,
Daniel
>
> Balbir Singh.
^ permalink raw reply
* Re: [RFC PATCH 2/2] powerpc/mm/hash64: Map all the kernel mapping in the same 0xc range
From: Aneesh Kumar K.V @ 2019-02-19 6:00 UTC (permalink / raw)
To: Nicholas Piggin, Akshay Adiga, benh, Daniel Axtens, mpe, paulus
Cc: linuxppc-dev
In-Reply-To: <1550555813.fmra4d124d.astroid@bobo.none>
On 2/19/19 11:28 AM, Nicholas Piggin wrote:
> Aneesh Kumar K.V's on February 17, 2019 3:16 pm:
>> This patch maps vmap, IO and vmemap regions in the 0xc address range
>> instead of the current 0xd and 0xf range. This brings the mapping closer
>> to radix translation mode.
>
> What was the reason for that address layout in the first place?
>
To bring in closer to radix translation mode and it should also help
with KASAN implementation.
-aneesh
^ permalink raw reply
* Re: [RFC PATCH 2/2] powerpc/mm/hash64: Map all the kernel mapping in the same 0xc range
From: Nicholas Piggin @ 2019-02-19 5:58 UTC (permalink / raw)
To: Akshay Adiga, Aneesh Kumar K.V, benh, Daniel Axtens, mpe, paulus
Cc: linuxppc-dev
In-Reply-To: <20190217051609.24140-2-aneesh.kumar@linux.ibm.com>
Aneesh Kumar K.V's on February 17, 2019 3:16 pm:
> This patch maps vmap, IO and vmemap regions in the 0xc address range
> instead of the current 0xd and 0xf range. This brings the mapping closer
> to radix translation mode.
What was the reason for that address layout in the first place?
Thanks,
Nick
^ permalink raw reply
* Re: [PATCH] powerpc/book3s: Remove a few page table update interfaces.
From: Aneesh Kumar K.V @ 2019-02-19 5:56 UTC (permalink / raw)
To: Nicholas Piggin, benh, mpe, paulus; +Cc: linuxppc-dev
In-Reply-To: <1550555411.zijyo53gzp.astroid@bobo.none>
On 2/19/19 11:23 AM, Nicholas Piggin wrote:
> Aneesh Kumar K.V's on February 14, 2019 4:45 pm:
>> When updating page tables, we need to make sure we fill the page table
>> entry valid bit. We should be using page table populate interface for
>> updating the table entries. The page table 'set' interface allows
>> updating the raw value of page table entry. This can result in
>> updating the entry wrongly. Remove the 'set' interface so that we avoid
>> its future usage.
>
> Removing a pointless indirection is fine by me, but I can't
> figure out how this change could help to prevent entry being updated
> incorrectly.
I guess my commit message is confusing. What I meant is this avoid the
usage of pgd/pud_set from other kernel code without updating the page
table entry valid bits. The idea is to make pgd_populate as the only
interface for update pgd entries.
-aneesh
^ permalink raw reply
* Re: [PATCH] powerpc/book3s: Remove a few page table update interfaces.
From: Nicholas Piggin @ 2019-02-19 5:53 UTC (permalink / raw)
To: Aneesh Kumar K.V, benh, mpe, paulus; +Cc: linuxppc-dev
In-Reply-To: <20190214064540.26597-1-aneesh.kumar@linux.ibm.com>
Aneesh Kumar K.V's on February 14, 2019 4:45 pm:
> When updating page tables, we need to make sure we fill the page table
> entry valid bit. We should be using page table populate interface for
> updating the table entries. The page table 'set' interface allows
> updating the raw value of page table entry. This can result in
> updating the entry wrongly. Remove the 'set' interface so that we avoid
> its future usage.
Removing a pointless indirection is fine by me, but I can't
figure out how this change could help to prevent entry being updated
incorrectly.
Thanks,
Nick
>
> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
> ---
> arch/powerpc/include/asm/book3s/64/pgalloc.h | 8 ++++----
> arch/powerpc/include/asm/book3s/64/pgtable.h | 14 --------------
> 2 files changed, 4 insertions(+), 18 deletions(-)
>
> diff --git a/arch/powerpc/include/asm/book3s/64/pgalloc.h b/arch/powerpc/include/asm/book3s/64/pgalloc.h
> index 9c1173283b96..138bc2ecc0c4 100644
> --- a/arch/powerpc/include/asm/book3s/64/pgalloc.h
> +++ b/arch/powerpc/include/asm/book3s/64/pgalloc.h
> @@ -111,7 +111,7 @@ static inline void pgd_free(struct mm_struct *mm, pgd_t *pgd)
>
> static inline void pgd_populate(struct mm_struct *mm, pgd_t *pgd, pud_t *pud)
> {
> - pgd_set(pgd, __pgtable_ptr_val(pud) | PGD_VAL_BITS);
> + *pgd = __pgd(__pgtable_ptr_val(pud) | PGD_VAL_BITS);
> }
>
> static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long addr)
> @@ -138,7 +138,7 @@ static inline void pud_free(struct mm_struct *mm, pud_t *pud)
>
> static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
> {
> - pud_set(pud, __pgtable_ptr_val(pmd) | PUD_VAL_BITS);
> + *pud = __pud(__pgtable_ptr_val(pmd) | PUD_VAL_BITS);
> }
>
> static inline void __pud_free_tlb(struct mmu_gather *tlb, pud_t *pud,
> @@ -176,13 +176,13 @@ static inline void __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd,
> static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd,
> pte_t *pte)
> {
> - pmd_set(pmd, __pgtable_ptr_val(pte) | PMD_VAL_BITS);
> + *pmd = __pmd(__pgtable_ptr_val(pte) | PMD_VAL_BITS);
> }
>
> static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd,
> pgtable_t pte_page)
> {
> - pmd_set(pmd, __pgtable_ptr_val(pte_page) | PMD_VAL_BITS);
> + *pmd = __pmd(__pgtable_ptr_val(pte_page) | PMD_VAL_BITS);
> }
>
> static inline pgtable_t pmd_pgtable(pmd_t pmd)
> diff --git a/arch/powerpc/include/asm/book3s/64/pgtable.h b/arch/powerpc/include/asm/book3s/64/pgtable.h
> index dc71e2b92003..a24e00fb7fa7 100644
> --- a/arch/powerpc/include/asm/book3s/64/pgtable.h
> +++ b/arch/powerpc/include/asm/book3s/64/pgtable.h
> @@ -853,11 +853,6 @@ static inline bool pte_ci(pte_t pte)
> return false;
> }
>
> -static inline void pmd_set(pmd_t *pmdp, unsigned long val)
> -{
> - *pmdp = __pmd(val);
> -}
> -
> static inline void pmd_clear(pmd_t *pmdp)
> {
> *pmdp = __pmd(0);
> @@ -889,11 +884,6 @@ static inline int pmd_bad(pmd_t pmd)
> return hash__pmd_bad(pmd);
> }
>
> -static inline void pud_set(pud_t *pudp, unsigned long val)
> -{
> - *pudp = __pud(val);
> -}
> -
> static inline void pud_clear(pud_t *pudp)
> {
> *pudp = __pud(0);
> @@ -936,10 +926,6 @@ static inline bool pud_access_permitted(pud_t pud, bool write)
> }
>
> #define pgd_write(pgd) pte_write(pgd_pte(pgd))
> -static inline void pgd_set(pgd_t *pgdp, unsigned long val)
> -{
> - *pgdp = __pgd(val);
> -}
>
> static inline void pgd_clear(pgd_t *pgdp)
> {
> --
> 2.20.1
>
>
^ permalink raw reply
* Re: [RFC PATCH v1] powerpc/accounting: do not account system time on transition to user.
From: Nicholas Piggin @ 2019-02-19 5:41 UTC (permalink / raw)
To: Benjamin Herrenschmidt, Christophe Leroy, Michael Ellerman,
Paul Mackerras
Cc: linuxppc-dev, linux-kernel
In-Reply-To: <a952f14712b90f182c0fcace434b2a0e9f21ed9f.1549636481.git.christophe.leroy@c-s.fr>
Christophe Leroy's on February 9, 2019 12:40 am:
> Time spent in kernel mode don't need to be accounted on transition
> to user space. As far as the time spent in user is known, it
> is possible to calculate the time spent in kernel by substracting
> the time spent in user.
>
> To do so, this patch modifies vtime_delta() to substract the
> time spent in user since the last call to vtime_delta().
>
> This patch gives a 2% improvment of null_syscall() selftest on a 83xx.
>
> Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
This looks like a clever little optimization, although I don't know
this time accounting code very well.
> ---
> But surprisingly, this patch degrades the null_syscall selftest by 20% on the 8xx. Any idea of the reason ?
I don't know microarchitecture of any of those CPUs I'm afraid.
On the 64s CPUs, mftb is what hurts.
>
> arch/powerpc/include/asm/accounting.h | 1 +
> arch/powerpc/include/asm/ppc_asm.h | 8 +-------
> arch/powerpc/kernel/asm-offsets.c | 8 ++------
> arch/powerpc/kernel/time.c | 4 +++-
> 4 files changed, 7 insertions(+), 14 deletions(-)
>
> diff --git a/arch/powerpc/include/asm/accounting.h b/arch/powerpc/include/asm/accounting.h
> index c607c5d835cc..2f1ff5f9fd7a 100644
> --- a/arch/powerpc/include/asm/accounting.h
> +++ b/arch/powerpc/include/asm/accounting.h
> @@ -27,6 +27,7 @@ struct cpu_accounting_data {
> /* Internal counters */
> unsigned long starttime; /* TB value snapshot */
> unsigned long starttime_user; /* TB value on exit to usermode */
> + unsigned long utime_asm;
> #ifdef CONFIG_ARCH_HAS_SCALED_CPUTIME
> unsigned long startspurr; /* SPURR value snapshot */
> unsigned long utime_sspurr; /* ->user_time when ->startspurr set */
> diff --git a/arch/powerpc/include/asm/ppc_asm.h b/arch/powerpc/include/asm/ppc_asm.h
> index e0637730a8e7..be17d570d484 100644
> --- a/arch/powerpc/include/asm/ppc_asm.h
> +++ b/arch/powerpc/include/asm/ppc_asm.h
> @@ -28,9 +28,8 @@
> #define ACCOUNT_STOLEN_TIME
> #else
> #define ACCOUNT_CPU_USER_ENTRY(ptr, ra, rb) \
> - MFTB(ra); /* get timebase */ \
> PPC_LL rb, ACCOUNT_STARTTIME_USER(ptr); \
> - PPC_STL ra, ACCOUNT_STARTTIME(ptr); \
> + MFTB(ra); /* get timebase */ \
> subf rb,rb,ra; /* subtract start value */ \
> PPC_LL ra, ACCOUNT_USER_TIME(ptr); \
> add ra,ra,rb; /* add on to user time */ \
> @@ -38,12 +37,7 @@
>
> #define ACCOUNT_CPU_USER_EXIT(ptr, ra, rb) \
> MFTB(ra); /* get timebase */ \
> - PPC_LL rb, ACCOUNT_STARTTIME(ptr); \
> PPC_STL ra, ACCOUNT_STARTTIME_USER(ptr); \
> - subf rb,rb,ra; /* subtract start value */ \
> - PPC_LL ra, ACCOUNT_SYSTEM_TIME(ptr); \
> - add ra,ra,rb; /* add on to system time */ \
> - PPC_STL ra, ACCOUNT_SYSTEM_TIME(ptr)
>
> #ifdef CONFIG_PPC_SPLPAR
> #define ACCOUNT_STOLEN_TIME \
> diff --git a/arch/powerpc/kernel/asm-offsets.c b/arch/powerpc/kernel/asm-offsets.c
> index 7a1b93c5af63..f2ba7735f56f 100644
> --- a/arch/powerpc/kernel/asm-offsets.c
> +++ b/arch/powerpc/kernel/asm-offsets.c
> @@ -260,19 +260,15 @@ int main(void)
> OFFSET(PACAHWCPUID, paca_struct, hw_cpu_id);
> OFFSET(PACAKEXECSTATE, paca_struct, kexec_state);
> OFFSET(PACA_DSCR_DEFAULT, paca_struct, dscr_default);
> - OFFSET(ACCOUNT_STARTTIME, paca_struct, accounting.starttime);
> OFFSET(ACCOUNT_STARTTIME_USER, paca_struct, accounting.starttime_user);
> - OFFSET(ACCOUNT_USER_TIME, paca_struct, accounting.utime);
> - OFFSET(ACCOUNT_SYSTEM_TIME, paca_struct, accounting.stime);
> + OFFSET(ACCOUNT_USER_TIME, paca_struct, accounting.utime_asm);
> OFFSET(PACA_TRAP_SAVE, paca_struct, trap_save);
> OFFSET(PACA_NAPSTATELOST, paca_struct, nap_state_lost);
> OFFSET(PACA_SPRG_VDSO, paca_struct, sprg_vdso);
> #else /* CONFIG_PPC64 */
> #ifdef CONFIG_VIRT_CPU_ACCOUNTING_NATIVE
> - OFFSET(ACCOUNT_STARTTIME, thread_info, accounting.starttime);
> OFFSET(ACCOUNT_STARTTIME_USER, thread_info, accounting.starttime_user);
> - OFFSET(ACCOUNT_USER_TIME, thread_info, accounting.utime);
> - OFFSET(ACCOUNT_SYSTEM_TIME, thread_info, accounting.stime);
> + OFFSET(ACCOUNT_USER_TIME, thread_info, accounting.utime_asm);
> #endif
> #endif /* CONFIG_PPC64 */
>
> diff --git a/arch/powerpc/kernel/time.c b/arch/powerpc/kernel/time.c
> index bc0503ef9c9c..79420643b45f 100644
> --- a/arch/powerpc/kernel/time.c
> +++ b/arch/powerpc/kernel/time.c
> @@ -331,8 +331,10 @@ static unsigned long vtime_delta(struct task_struct *tsk,
> WARN_ON_ONCE(!irqs_disabled());
>
> now = mftb();
> - stime = now - acct->starttime;
> + stime = now - acct->starttime - acct->utime_asm;
> acct->starttime = now;
> + acct->utime += acct->utime_asm;
> + acct->utime_asm = 0;
>
> *stime_scaled = vtime_delta_scaled(acct, now, stime);
>
> --
> 2.13.3
>
>
^ permalink raw reply
* Re: [PATCH] powerpc: fix 32-bit KVM-PR lockup and panic with MacOS guest
From: Michael Ellerman @ 2019-02-19 4:55 UTC (permalink / raw)
To: Mark Cave-Ayland, Benjamin Herrenschmidt, Christophe Leroy,
paulus, npiggin, linuxppc-dev, linux-kernel, kvm-ppc
In-Reply-To: <46205b6a-7671-5d90-9507-b5b20045b99d@ilande.co.uk>
Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> writes:
> On 11/02/2019 00:30, Benjamin Herrenschmidt wrote:
>
>> On Fri, 2019-02-08 at 14:51 +0000, Mark Cave-Ayland wrote:
>>>
>>> Indeed, but there are still some questions to be asked here:
>>>
>>> 1) Why were these bits removed from the original bitmask in the first place without
>>> it being documented in the commit message?
>>>
>>> 2) Is this the right fix? I'm told that MacOS guests already run without this patch
>>> on a G5 under 64-bit KVM-PR which may suggest that this is a workaround for another
>>> bug elsewhere in the 32-bit powerpc code.
>>>
>>>
>>> If you think that these points don't matter, then I'm happy to resubmit the patch
>>> as-is based upon your comments above.
>>
>> We should write a test case to verify that FE0/FE1 are properly
>> preserved/context-switched etc... I bet if we accidentally wiped them,
>> we wouldn't notice 99.9% of the time.
>
> Right I guess it's more likely to cause in issue in the KVM PR case because the guest
> can alter the flags in a way that doesn't go through the normal process switch mechanism.
>
> The original patchset at
> https://www.mail-archive.com/linuxppc-dev@lists.ozlabs.org/msg98326.html does include
> some tests in the first few patches, but AFAICT they are concerned with the contents
> of the FP registers rather than the related MSRs.
fpu_preempt.c should be able to be adapted to also check the MSR bits.
> Who is the right person to ask about fixing issues related to context switching with
> KVM PR?
KVM PR doesn't really have a maintainer TBH. Feel like volunteering? :)
> I did add the original author's email address to my first few emails but have
> had no response back :/
Cyril who wrote the original FPU patch has moved on to other things.
cheers
^ permalink raw reply
* Re: [PATCH] powerpc/powernv/idle: Restore IAMR after idle
From: Nicholas Piggin @ 2019-02-19 4:21 UTC (permalink / raw)
To: linuxppc-dev, Michael Ellerman, Russell Currey
In-Reply-To: <87o97njdjg.fsf@concordia.ellerman.id.au>
Michael Ellerman's on February 8, 2019 11:04 am:
> Nicholas Piggin <npiggin@gmail.com> writes:
>> Russell Currey's on February 6, 2019 4:28 pm:
>>> Without restoring the IAMR after idle, execution prevention on POWER9
>>> with Radix MMU is overwritten and the kernel can freely execute userspace without
>>> faulting.
>>>
>>> This is necessary when returning from any stop state that modifies user
>>> state, as well as hypervisor state.
>>>
>>> To test how this fails without this patch, load the lkdtm driver and
>>> do the following:
>>>
>>> echo EXEC_USERSPACE > /sys/kernel/debug/provoke-crash/DIRECT
>>>
>>> which won't fault, then boot the kernel with powersave=off, where it
>>> will fault. Applying this patch will fix this.
>>>
>>> Fixes: 3b10d0095a1e ("powerpc/mm/radix: Prevent kernel execution of user
>>> space")
>>> Cc: <stable@vger.kernel.org>
>>> Signed-off-by: Russell Currey <ruscur@russell.cc>
>>
>> Good catch and debugging. This really should be a quirk, we don't want
>> to have to restore this thing on a thread switch.
>
> I'm not sure I follow. We don't context switch it on Radix, but we do
> on hash if pkeys are enabled.
Badly worded, I mean a hardware quirk. It should follow thread
switches. Still, avoiding it for the no-loss case is better than
nothing. We can just revisit it as an optimization if future
hardware does not require the restore.
>> Can we put it under a CONFIG option if we're not using IAMR?
>
> We'll always be using it with Radix, and we might be using it for pkeys
> on hash, unless pkeys are compiled out. But I don't really expect anyone
> to be running with pkeys compiled out.
>
> So I think the only case we could optimise is that we're on hash and the
> current thread has an IAMR of 0, then we could just not restore
> (assuming we come out of idle with IAMR=0).
>
> But maybe I'm not understanding.
Nah it sounds like more trouble than it's worth in that case.
Thanks,
Nick
^ permalink raw reply
* Re: [PATCH] powerpc: fix 32-bit KVM-PR lockup and panic with MacOS guest
From: Michael Ellerman @ 2019-02-19 4:20 UTC (permalink / raw)
To: Mark Cave-Ayland, Christophe Leroy, benh, paulus, npiggin,
linuxppc-dev, linux-kernel, kvm-ppc
In-Reply-To: <2ed8efb9-5cd4-31bf-6c7b-501b9d1925e6@ilande.co.uk>
Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> writes:
> On 08/02/2019 14:45, Christophe Leroy wrote:
>
>> Le 08/02/2019 à 15:33, Mark Cave-Ayland a écrit :
>>> Commit 8792468da5e1 "powerpc: Add the ability to save FPU without giving it up"
>>
>> Expected format for the above is:
>>
>> Commit 123456789abc ("text")
>
> Hi Christophe,
>
> Apologies - I'm fairly new at submitting kernel patches, but I can re-send it in the
> correct format later if required.
>
>>> unexpectedly removed the MSR_FE0 and MSR_FE1 bits from the bitmask used to
>>> update the MSR of the previous thread in __giveup_fpu() causing a KVM-PR MacOS
>>> guest to lockup and panic the kernel.
Which kernel is panicking? The guest or the host?
>>> Reinstate these bits to the MSR bitmask to enable MacOS guests to run under
>>> 32-bit KVM-PR once again without issue.
>>>
>>> Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
>>
>> Should include a Fixes: and a Cc to stable ?
>>
>> Fixes: 8792468da5e1 ("powerpc: Add the ability to save FPU without giving it up")
>> Cc: stable@vger.kernel.org
>
> Indeed, but there are still some questions to be asked here:
>
> 1) Why were these bits removed from the original bitmask in the first place without
> it being documented in the commit message?
It was almost certainly an accident.
> 2) Is this the right fix? I'm told that MacOS guests already run without this patch
> on a G5 under 64-bit KVM-PR which may suggest that this is a workaround for another
> bug elsewhere in the 32-bit powerpc code.
That's slightly worrying. It's hard to say without more detail on why
the guest is crashing.
I think your patch looks OK based just on the fact that it restores the
previous behaviour, so I'll pick it up and pass it through my usual
testing. If nothing breaks I'll merge it.
cheers
^ permalink raw reply
* Re: [PATCH v6] powerpc/64s: reimplement book3s idle code in C
From: Nicholas Piggin @ 2019-02-19 4:13 UTC (permalink / raw)
To: Paul Mackerras
Cc: Gautham R . Shenoy, Mahesh Jagannath Salgaonkar, kvm-ppc,
Aneesh Kumar K.V, linuxppc-dev, Akshay Adiga
In-Reply-To: <20190217230640.GA922@blackberry>
Paul Mackerras's on February 18, 2019 9:06 am:
> On Sat, Oct 13, 2018 at 10:04:09PM +1000, Nicholas Piggin wrote:
>> Reimplement Book3S idle code in C, moving POWER7/8/9 implementation
>> speific HV idle code to the powernv platform code.
>>
>
> [...]
>
>> @@ -2760,21 +2744,47 @@ BEGIN_FTR_SECTION
>> li r4, LPCR_PECE_HVEE@higher
>> sldi r4, r4, 32
>> or r5, r5, r4
>> -END_FTR_SECTION_IFSET(CPU_FTR_ARCH_300)
>> +FTR_SECTION_ELSE
>> + li r3, PNV_THREAD_NAP
>> +ALT_FTR_SECTION_END_IFSET(CPU_FTR_ARCH_300)
>> mtspr SPRN_LPCR,r5
>> isync
>> - li r0, 0
>> - std r0, HSTATE_SCRATCH0(r13)
>> - ptesync
>> - ld r0, HSTATE_SCRATCH0(r13)
>> -1: cmpd r0, r0
>> - bne 1b
>> +
>> + mr r0, r1
>> + ld r1, PACAEMERGSP(r13)
>> + subi r1, r1, STACK_FRAME_OVERHEAD
>> + std r0, 0(r1)
>> + ld r0, PACAR1(r13)
>> + std r0, 8(r1)
>
> This bit seems wrong to me. If this is a secondary thread on POWER8,
> we were already on the emergency stack, and now we've reset r1 back to
> the top of the emergency stack and we're overwriting it.
I'll have to find some time to take another look at this stuff. The KVM
stuff was a bit hasty.
> I wonder why you didn't see secondary threads going off into lala land
> in your tests?
It must have been because I wasn't testing the guest SMT properly
because I did get it to break trivially sometime after posting this
patch out. So we were on the emergency stack here, that should make
things easier, that may be what's wrong.
Thanks,
Nick
^ permalink raw reply
* [PATCH v2] KVM: PPC: Book3S: Add KVM stat largepages_[2M/1G]
From: Suraj Jitindar Singh @ 2019-02-19 3:53 UTC (permalink / raw)
To: kvm-ppc; +Cc: linuxppc-dev, Suraj Jitindar Singh, kvm
This adds an entry to the kvm_stats_debugfs directory which provides the
number of large (2M or 1G) pages which have been used to setup the guest
mappings.
Signed-off-by: Suraj Jitindar Singh <sjitindarsingh@gmail.com>
---
V1 -> V2:
- Rename debugfs files from num_[2M/1G]_pages to largepages_[2M/1G] to match
x86
arch/powerpc/include/asm/kvm_host.h | 2 ++
arch/powerpc/kvm/book3s.c | 3 +++
arch/powerpc/kvm/book3s_64_mmu_radix.c | 15 ++++++++++++++-
3 files changed, 19 insertions(+), 1 deletion(-)
diff --git a/arch/powerpc/include/asm/kvm_host.h b/arch/powerpc/include/asm/kvm_host.h
index 0f98f00da2ea..cbb090010312 100644
--- a/arch/powerpc/include/asm/kvm_host.h
+++ b/arch/powerpc/include/asm/kvm_host.h
@@ -99,6 +99,8 @@ struct kvm_nested_guest;
struct kvm_vm_stat {
ulong remote_tlb_flush;
+ ulong num_2M_pages;
+ ulong num_1G_pages;
};
struct kvm_vcpu_stat {
diff --git a/arch/powerpc/kvm/book3s.c b/arch/powerpc/kvm/book3s.c
index bd1a677dd9e4..72fd7d44379b 100644
--- a/arch/powerpc/kvm/book3s.c
+++ b/arch/powerpc/kvm/book3s.c
@@ -39,6 +39,7 @@
#include "book3s.h"
#include "trace.h"
+#define VM_STAT(x) offsetof(struct kvm, stat.x), KVM_STAT_VM
#define VCPU_STAT(x) offsetof(struct kvm_vcpu, stat.x), KVM_STAT_VCPU
/* #define EXIT_DEBUG */
@@ -71,6 +72,8 @@ struct kvm_stats_debugfs_item debugfs_entries[] = {
{ "pthru_all", VCPU_STAT(pthru_all) },
{ "pthru_host", VCPU_STAT(pthru_host) },
{ "pthru_bad_aff", VCPU_STAT(pthru_bad_aff) },
+ { "largepages_2M", VM_STAT(num_2M_pages) },
+ { "largepages_1G", VM_STAT(num_1G_pages) },
{ NULL }
};
diff --git a/arch/powerpc/kvm/book3s_64_mmu_radix.c b/arch/powerpc/kvm/book3s_64_mmu_radix.c
index 1b821c6efdef..f55ef071883f 100644
--- a/arch/powerpc/kvm/book3s_64_mmu_radix.c
+++ b/arch/powerpc/kvm/book3s_64_mmu_radix.c
@@ -403,8 +403,13 @@ void kvmppc_unmap_pte(struct kvm *kvm, pte_t *pte, unsigned long gpa,
if (!memslot)
return;
}
- if (shift)
+ if (shift) { /* 1GB or 2MB page */
page_size = 1ul << shift;
+ if (shift == PMD_SHIFT)
+ kvm->stat.num_2M_pages--;
+ else if (shift == PUD_SHIFT)
+ kvm->stat.num_1G_pages--;
+ }
gpa &= ~(page_size - 1);
hpa = old & PTE_RPN_MASK;
@@ -878,6 +883,14 @@ int kvmppc_book3s_instantiate_page(struct kvm_vcpu *vcpu,
put_page(page);
}
+ /* Increment number of large pages if we (successfully) inserted one */
+ if (!ret) {
+ if (level == 1)
+ kvm->stat.num_2M_pages++;
+ else if (level == 2)
+ kvm->stat.num_1G_pages++;
+ }
+
return ret;
}
--
2.13.6
^ permalink raw reply related
* Re: [PATCH -next] powerpc/pseries: Drop pointless static qualifier in vpa_debugfs_init()
From: Daniel Axtens @ 2019-02-19 3:47 UTC (permalink / raw)
To: YueHaibing, Benjamin Herrenschmidt, Paul Mackerras,
Michael Ellerman, Masahiro Yamada, Aravinda Prasad,
Alexey Kardashevskiy, Aneesh Kumar K.V, Laurent Dufour
Cc: linuxppc-dev, kernel-janitors, YueHaibing, linux-kernel
In-Reply-To: <20190218125644.87448-1-yuehaibing@huawei.com>
Hi YueHaibing, <yuehaibing@huawei.com> writes:
> There is no need to have the 'struct dentry *vpa_dir' variable static
> since new value always be assigned before use it.
>
Much to my surprise this seems to be a correct change. I don't know why
the struct was ever static but it seems to have been this way since the
commit went in in October 2018. And yes, it is set every time when the
function is called (which is exactly once, it's an initcall). I wonder
if once upon a time in an earlier spin of the patch there was a method
to tear the debugfs down, so it was global, and in the revisions that
went away but the static qualifier remained.
Anyway, I think your commit message should have:
Fixes: c6c26fb55e8e ("powerpc/pseries: Export raw per-CPU VPA data via debugfs")
as this is the commit that introduced the issue.
With that change:
Reviewed-by: Daniel Axtens <dja@axtens.net>
Regards,
Daniel
> Signed-off-by: YueHaibing <yuehaibing@huawei.com>
> ---
> arch/powerpc/platforms/pseries/lpar.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/powerpc/platforms/pseries/lpar.c b/arch/powerpc/platforms/pseries/lpar.c
> index f2a9f0adc2d3..f649c1b652eb 100644
> --- a/arch/powerpc/platforms/pseries/lpar.c
> +++ b/arch/powerpc/platforms/pseries/lpar.c
> @@ -1263,7 +1263,7 @@ static int __init vpa_debugfs_init(void)
> {
> char name[16];
> long i;
> - static struct dentry *vpa_dir;
> + struct dentry *vpa_dir;
>
> if (!firmware_has_feature(FW_FEATURE_SPLPAR))
> return 0;
^ permalink raw reply
* Re: [RFC PATCH v3 3/4] kvmppc: H_SVM_INIT_START and H_SVM_INIT_DONE hcalls
From: Bharata B Rao @ 2019-02-19 3:37 UTC (permalink / raw)
To: Paul Mackerras
Cc: linuxram, kvm-ppc, benh, linux-mm, jglisse, aneesh.kumar, paulus,
sukadev, linuxppc-dev
In-Reply-To: <20190219032140.GA5353@blackberry>
On Tue, Feb 19, 2019 at 02:21:40PM +1100, Paul Mackerras wrote:
> On Wed, Jan 30, 2019 at 11:37:25AM +0530, Bharata B Rao wrote:
> > H_SVM_INIT_START: Initiate securing a VM
> > H_SVM_INIT_DONE: Conclude securing a VM
> >
> > During early guest init, these hcalls will be issued by UV.
> > As part of these hcalls, [un]register memslots with UV.
>
> That last sentence is a bit misleading as it implies that
> H_SVM_INIT_DONE causes us to unregister the memslots with the UV,
> which is not the case. Shouldn't it be "As part of H_SVM_INIT_START,
> register all existing memslots with the UV"?
Ok, makes sense to rephrase.
>
> Also, do we subsequently communicate changes in the memslots to the
> UV?
Yes, currently handing KVM_MR_DELETE, yet to handle KVM_MR_MOVE
Regards,
Bharata.
^ permalink raw reply
* Re: [RFC PATCH v3 3/4] kvmppc: H_SVM_INIT_START and H_SVM_INIT_DONE hcalls
From: Paul Mackerras @ 2019-02-19 3:21 UTC (permalink / raw)
To: Bharata B Rao
Cc: linuxram, kvm-ppc, benh, linux-mm, jglisse, aneesh.kumar, paulus,
sukadev, linuxppc-dev
In-Reply-To: <20190130060726.29958-4-bharata@linux.ibm.com>
On Wed, Jan 30, 2019 at 11:37:25AM +0530, Bharata B Rao wrote:
> H_SVM_INIT_START: Initiate securing a VM
> H_SVM_INIT_DONE: Conclude securing a VM
>
> During early guest init, these hcalls will be issued by UV.
> As part of these hcalls, [un]register memslots with UV.
That last sentence is a bit misleading as it implies that
H_SVM_INIT_DONE causes us to unregister the memslots with the UV,
which is not the case. Shouldn't it be "As part of H_SVM_INIT_START,
register all existing memslots with the UV"?
Also, do we subsequently communicate changes in the memslots to the
UV?
Paul.
^ permalink raw reply
* Re: [PATCH 05/11] tracing: consolidate the TRACE_IRQFLAGS_SUPPORT symbol
From: Ley Foon Tan @ 2019-02-19 1:40 UTC (permalink / raw)
To: Masahiro Yamada, Christoph Hellwig
Cc: linux-xtensa, Linux Kbuild mailing list, linux-s390,
Linux Kernel Mailing List, nios2-dev, Ley Foon Tan, linux-riscv,
linuxppc-dev
In-Reply-To: <CAK7LNARDdPabSOq6vHvxTPPWaMguJUEtok=dNrfnLEz=UtHO+w@mail.gmail.com>
On Fri, 2019-02-15 at 16:55 +0900, Masahiro Yamada wrote:
> +CC: Ley Foon Tan <lftan@altera.com>
> +CC: nios2-dev@lists.rocketboards.org
>
>
> On Thu, Feb 14, 2019 at 2:40 AM Christoph Hellwig <hch@lst.de> wrote:
>
> >
> > diff --git a/arch/nios2/Kconfig b/arch/nios2/Kconfig
> > index 715e6c09b4a5..3b50689007f5 100644
> > --- a/arch/nios2/Kconfig
> > +++ b/arch/nios2/Kconfig
> > @@ -20,6 +20,7 @@ config NIOS2
> > select OF_EARLY_FLATTREE
> > select SOC_BUS
> > select SPARSE_IRQ
> > + select TRACE_IRQFLAGS_SUPPORT
>
> This is a behavior change of nios2.
>
> TRACE_IRQFLAGS_SUPPORT was previously 'n',
> and this commit is changing it to 'y'.
>
>
>
>
> Strangely, nios2 defines TRACE_IRQFLAGS_SUPPORT twice
> with different default values.
>
> In Kconfig, the first one becomes effective.
>
> In this case, 'def_bool n' in arch/nios2/Kconfig is used.
> 'def_bool y' in arch/nios2/Kconfig.debug is dead code.
>
>
> I think this select should be dropped
> to keep the current behavior,
> but I hope the NIOS2 maintainer will give us
> some comments just in case.
>
Yes, please drop this patch to keep original behavior.
Thanks.
Regards
Ley Foon
>
>
>
> >
> > select USB_ARCH_HAS_HCD if USB_SUPPORT
> > select CPU_NO_EFFICIENT_FFS
> > select ARCH_DISCARD_MEMBLOCK
> > @@ -39,9 +40,6 @@ config NO_IOPORT_MAP
> > config FPU
> > def_bool n
> >
> > -config TRACE_IRQFLAGS_SUPPORT
> > - def_bool n
> > -
> > menu "Kernel features"
> >
> > source "kernel/Kconfig.hz"
> > diff --git a/arch/nios2/Kconfig.debug b/arch/nios2/Kconfig.debug
> > index f1da8a7b17ff..a8bc06e96ef5 100644
> > --- a/arch/nios2/Kconfig.debug
> > +++ b/arch/nios2/Kconfig.debug
> > @@ -1,8 +1,5 @@
> > # SPDX-License-Identifier: GPL-2.0
> >
> > -config TRACE_IRQFLAGS_SUPPORT
> > - def_bool y
> > -
> > config EARLY_PRINTK
> > bool "Activate early kernel debugging"
> > default y
> --
> Best Regards
> Masahiro Yamada
>
> ________________________________
>
> Confidentiality Notice.
> This message may contain information that is confidential or
> otherwise protected from disclosure. If you are not the intended
> recipient, you are hereby notified that any use, disclosure,
> dissemination, distribution, or copying of this message, or any
> attachments, is strictly prohibited. If you have received this
> message in error, please advise the sender by reply e-mail, and
> delete the message and any attachments. Thank you.
^ permalink raw reply
* Re: [PATCH] powerpc/ptrace: Simplify vr_get/set() to avoid GCC warning
From: Michael Ellerman @ 2019-02-19 1:02 UTC (permalink / raw)
To: Meelis Roos, linuxppc-dev; +Cc: malat
In-Reply-To: <0ef0b01c-e5e0-5295-3ccd-ff539dc82681@linux.ee>
Meelis Roos <mroos@linux.ee> writes:
>> Rather than relying on that we can pass an explict end_pos based on
>> the sizeof(vrsave). The result should be exactly the same but it's
>> more obviously not over-reading/writing the stack and it avoids the
>> compiler warning.
>
> It works on my PowerMac G4 with Debian-ports unstable with gcc 8.
Thanks.
cheers
^ permalink raw reply
* Re: [PATCH kernel] powerpc/powernv/sriov: Register IOMMU groups for VFs
From: David Gibson @ 2019-02-19 0:47 UTC (permalink / raw)
To: Alexey Kardashevskiy; +Cc: linuxppc-dev, kvm-ppc
In-Reply-To: <20190218055801.35165-1-aik@ozlabs.ru>
[-- Attachment #1: Type: text/plain, Size: 2559 bytes --]
On Mon, Feb 18, 2019 at 04:58:01PM +1100, Alexey Kardashevskiy wrote:
> The compound IOMMU group rework moved iommu_register_group() together in
> pnv_pci_ioda_setup_iommu_api() (which is a part of ppc_md.pcibios_fixup).
> As the result, pnv_ioda_setup_bus_iommu_group() does not create groups
> any more, it only adds devices to groups.
>
> This works fine for boot time devices. However IOMMU groups for SRIOV's
> VFs were added by pnv_ioda_setup_bus_iommu_group() so this got broken:
> pnv_tce_iommu_bus_notifier() expects a group to be registered for VF
> and it is not.
>
> This adds missing group registration and adds a NULL pointer check into
> the bus notifier so we won't stop in xmon if there is no group, although
> it is not expected to happen now.
>
> Fixes: 0bd971676e68 "powerpc/powernv/npu: Add compound IOMMU groups"
> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
> ---
>
> Fixes https://bugzilla.linux.ibm.com/show_bug.cgi?id=175550
> "Kernel Oops while creating SRIOV VF's."
>
>
> ---
> arch/powerpc/platforms/powernv/pci-ioda.c | 2 ++
> arch/powerpc/platforms/powernv/pci.c | 2 ++
> 2 files changed, 4 insertions(+)
>
> diff --git a/arch/powerpc/platforms/powernv/pci-ioda.c b/arch/powerpc/platforms/powernv/pci-ioda.c
> index 7db3119..145373f 100644
> --- a/arch/powerpc/platforms/powernv/pci-ioda.c
> +++ b/arch/powerpc/platforms/powernv/pci-ioda.c
> @@ -1593,6 +1593,8 @@ static void pnv_ioda_setup_vf_PE(struct pci_dev *pdev, u16 num_vfs)
>
> pnv_pci_ioda2_setup_dma_pe(phb, pe);
> #ifdef CONFIG_IOMMU_API
> + iommu_register_group(&pe->table_group,
> + pe->phb->hose->global_number, pe->pe_number);
> pnv_ioda_setup_bus_iommu_group(pe, &pe->table_group, NULL);
> #endif
> }
> diff --git a/arch/powerpc/platforms/powernv/pci.c b/arch/powerpc/platforms/powernv/pci.c
> index 45fb70b..ef9448a 100644
> --- a/arch/powerpc/platforms/powernv/pci.c
> +++ b/arch/powerpc/platforms/powernv/pci.c
> @@ -1147,6 +1147,8 @@ static int pnv_tce_iommu_bus_notifier(struct notifier_block *nb,
> return 0;
>
> pe = &phb->ioda.pe_array[pdn->pe_number];
> + if (!pe->table_group.group)
> + return 0;
> iommu_add_device(&pe->table_group, dev);
> return 0;
> case BUS_NOTIFY_DEL_DEVICE:
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply
* Re: [RFC PATCH 4/5] powerpc: move KASAN into its own subdirectory
From: Michael Ellerman @ 2019-02-19 0:44 UTC (permalink / raw)
To: Christophe Leroy, Daniel Axtens, aneesh.kumar, bsingharora
Cc: linuxppc-dev, kasan-dev
In-Reply-To: <ae3b0a61-e11f-5dc1-469b-8cf2daa15201@c-s.fr>
Christophe Leroy <christophe.leroy@c-s.fr> writes:
> Le 18/02/2019 à 10:14, Michael Ellerman a écrit :
>> christophe leroy <christophe.leroy@c-s.fr> writes:
>>
>>> Le 15/02/2019 à 01:04, Daniel Axtens a écrit :
>>>> In preparation for adding ppc64 implementations, break out the
>>>> code into its own subdirectory.
>>>
>>> That's not a bad idea, arch/powerpc/mm is rather messy with lot of
>>> subarch stuff.
>>
>> I'm always happy to have more directories with more focused content.
>>
>
> Nice to know how to make you happy :)
Haha, well there is also beer :)
> I'll send you a patch for moving all page table dumping stuff into a
> subdirectory.
Thanks.
cheers
^ permalink raw reply
* Re: [RFC PATCH 5/5] powerpc: KASAN for 64bit Book3E
From: Daniel Axtens @ 2019-02-19 0:14 UTC (permalink / raw)
To: Christophe Leroy, aneesh.kumar, bsingharora
Cc: linuxppc-dev, Aneesh Kumar K . V, kasan-dev
In-Reply-To: <e0373aa9-5035-3d32-2422-a08e52d2a4fb@c-s.fr>
>> diff --git a/arch/powerpc/mm/kasan/kasan_init_book3e_64.c b/arch/powerpc/mm/kasan/kasan_init_book3e_64.c
>> new file mode 100644
>> index 000000000000..93b9afcf1020
>> --- /dev/null
>> +++ b/arch/powerpc/mm/kasan/kasan_init_book3e_64.c
>> @@ -0,0 +1,53 @@
>> +// SPDX-License-Identifier: GPL-2.0
>> +
>> +#define DISABLE_BRANCH_PROFILING
>> +
>> +#include <linux/kasan.h>
>> +#include <linux/printk.h>
>> +#include <linux/memblock.h>
>> +#include <linux/sched/task.h>
>> +#include <asm/pgalloc.h>
>> +
>> +DEFINE_STATIC_KEY_FALSE(powerpc_kasan_enabled_key);
>> +EXPORT_SYMBOL(powerpc_kasan_enabled_key);
>
> Why does this symbol need to be exported ?
I suppose it probably doesn't! I copied Balbir's code without much
thought as it seemed a lot smarter than my random global variable code.
Regards,
Daniel
>
> Christophe
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox