* Re: Regression in kernel 4.12-rc1 for Powerpc 32 - bisected to commit 3448890c32c3
[not found] ` <2346c306-8e26-94cb-3c63-b866a7f4625d@lwfinger.net>
@ 2017-06-23 20:29 ` Al Viro
2017-06-24 0:04 ` Larry Finger
2017-06-24 17:29 ` Larry Finger
0 siblings, 2 replies; 10+ messages in thread
From: Al Viro @ 2017-06-23 20:29 UTC (permalink / raw)
To: Larry Finger; +Cc: LKML, Thorsten Leemhuis, linuxppc-dev
On Fri, Jun 23, 2017 at 01:49:16PM -0500, Larry Finger wrote:
> > BTW, could you try to check what happens if you kill the
> > if (__builtin_constant_p(n) && (n <= 8))
> > bits in raw_copy_{to,from}_user()? The usefulness of those (in __copy_from_user()
> > originally) had always been dubious and the things are simpler without them.
> > If _that_ turns out to cure breakage, I would be very surprised, though.
> >
> Sorry I was gone so long. Installing jessie on this box resulted in a crash
> on boot. Lubuntu 14.04 yielded a desktop with a functioning cursor, but
> nothing else. Finally, Ubuntu 12.04 resulted in a working system. I hate
> Unity, but I guess I'm stuck for now.
Ho-hum... Jessie is 3.16, so whatever is crashing there, it's something
different... Ubuntu 12.04 is what, 3.2?
> I know how easy it is to screw up a long bisection by booting the wrong
> kernel. To help that problem and to work around the yaconf/yboot nonsense on
> the MAC, my /etc/yaconf has always had generic kernel stanzas with only
> default, old, and original kernels mentioned. From there I use a local
> script to finish a kernel installation by moving the default links to the
> old ones and creating the new default links pointing to the current kernel.
> With those long-tested scripts, I'm sure that I am booting the one I want.
>
> With the new installation, kernel 4.12-rc6 failed, as did 3448890c with the
> backported 46f401c4 added.
>
> Replacing "if (__builtin_constant_p(n) && (n <= 8))" with "if (0)" had no effect.
OK, that simplifies things a bit. Just to make sure we are on the same page:
* f2ed8bebee69 + cherry-pick of 46f401c4 boots (Ubuntu 12.04 userland)
* 3448890c32c3 + cherry-pick of 46f401c4 fails (Ubuntu 12.04 userland), ditto
with removal of constant-size bits in raw_copy_..._user(). Failure appears
to be on udev getting EFAULT on some syscalls.
* straight Ubuntu 12.04 works
* jessie crashes on boot.
Could you post the boot logs of the first two?
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Regression in kernel 4.12-rc1 for Powerpc 32 - bisected to commit 3448890c32c3
2017-06-23 20:29 ` Regression in kernel 4.12-rc1 for Powerpc 32 - bisected to commit 3448890c32c3 Al Viro
@ 2017-06-24 0:04 ` Larry Finger
2017-06-24 17:29 ` Larry Finger
1 sibling, 0 replies; 10+ messages in thread
From: Larry Finger @ 2017-06-24 0:04 UTC (permalink / raw)
To: Al Viro; +Cc: LKML, Thorsten Leemhuis, linuxppc-dev
[-- Attachment #1: Type: text/plain, Size: 3342 bytes --]
On 06/23/2017 03:29 PM, Al Viro wrote:
> On Fri, Jun 23, 2017 at 01:49:16PM -0500, Larry Finger wrote:
>
>>> BTW, could you try to check what happens if you kill the
>>> if (__builtin_constant_p(n) && (n <= 8))
>>> bits in raw_copy_{to,from}_user()? The usefulness of those (in __copy_from_user()
>>> originally) had always been dubious and the things are simpler without them.
>>> If _that_ turns out to cure breakage, I would be very surprised, though.
>>>
>> Sorry I was gone so long. Installing jessie on this box resulted in a crash
>> on boot. Lubuntu 14.04 yielded a desktop with a functioning cursor, but
>> nothing else. Finally, Ubuntu 12.04 resulted in a working system. I hate
>> Unity, but I guess I'm stuck for now.
>
> Ho-hum... Jessie is 3.16, so whatever is crashing there, it's something
> different... Ubuntu 12.04 is what, 3.2?
>
>> I know how easy it is to screw up a long bisection by booting the wrong
>> kernel. To help that problem and to work around the yaconf/yboot nonsense on
>> the MAC, my /etc/yaconf has always had generic kernel stanzas with only
>> default, old, and original kernels mentioned. From there I use a local
>> script to finish a kernel installation by moving the default links to the
>> old ones and creating the new default links pointing to the current kernel.
>> With those long-tested scripts, I'm sure that I am booting the one I want.
>>
>> With the new installation, kernel 4.12-rc6 failed, as did 3448890c with the
>> backported 46f401c4 added.
>>
>> Replacing "if (__builtin_constant_p(n) && (n <= 8))" with "if (0)" had no effect.
>
> OK, that simplifies things a bit. Just to make sure we are on the same page:
>
> * f2ed8bebee69 + cherry-pick of 46f401c4 boots (Ubuntu 12.04 userland)
> * 3448890c32c3 + cherry-pick of 46f401c4 fails (Ubuntu 12.04 userland), ditto
> with removal of constant-size bits in raw_copy_..._user(). Failure appears
> to be on udev getting EFAULT on some syscalls.
> * straight Ubuntu 12.04 works
> * jessie crashes on boot.
>
> Could you post the boot logs of the first two?
Yes, we are on the same page, and straight Ubuntu 12.04 has a 3.2 kernel.
I have attached the log for the first one. The second case never finds the
system disk, thus nothing is logged. I have a blurry photo that I will type the
last few lines:
Freeing unused kernel memory: 365K
This architecture does not have kernel memory protection.
Loading. please wait...
Begin: Loading essential drivers ... done
Begin: Running /scripts/init-premount ... done
Begin: Mounting root file system ... Begin: Running /scripts/local-top ... done.
Gave up waiting for root file system. Common problems:
- Boot args (cat /proc/cmdline)
- Check rootdelay= (did the system wait long enough?)
- Check root= (did the system wait for the right device?)
- Missing modules (cat /proc/modules: ls /dev)
ALERT! /dev/disk/by-uuid/.... does not exist. Dropping to a shell!
FATAL: Error inserting i8042 (/lib/modules/.../i8042.ko): No such device
BusyBox v1.18.6-1ubuntu4) built-in shell (ash)
Enter 'help' for a list of built-in commands.
(initramfs) [time] random: fast init done
[time] random: crng init done
The lines output after the "Architecture does not have ..." Is different under
Ubuntu than it was for Mint, which had the udev errors reported earlier.
Larry
[-- Attachment #2: dmesg.out --]
[-- Type: text/plain, Size: 30992 bytes --]
[ 0.000000] bootconsole [udbg0] enabled
[ 0.000000] Total memory = 1536MB; using 4096kB for hash table (at cfc00000)
[ 0.000000] Linux version 4.11.0-rc1+ (finger@ubuntu) (gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) ) #5 Fri Jun 23 18:23:44 CDT 2017
[ 0.000000] Found initrd at 0xc1700000:0xc2b9c000
[ 0.000000] Found UniNorth memory controller & host bridge @ 0xf8000000 revision: 0xd2
[ 0.000000] Mapped at 0xff7c0000
[ 0.000000] Found a Intrepid mac-io controller, rev: 0, mapped at 0xff740000
[ 0.000000] Processor NAP mode on idle enabled.
[ 0.000000] PowerMac motherboard: PowerBook G4 15"
[ 0.000000] Using PowerMac machine description
[ 0.000000] -----------------------------------------------------
[ 0.000000] Hash_size = 0x400000
[ 0.000000] phys_mem_size = 0x60000000
[ 0.000000] dcache_bsize = 0x20
[ 0.000000] icache_bsize = 0x20
[ 0.000000] cpu_features = 0x000000000422244e
[ 0.000000] possible = 0x0000000005a6fd7f
[ 0.000000] always = 0x0000000000020000
[ 0.000000] cpu_user_features = 0x9c000001 0x00000000
[ 0.000000] mmu_features = 0x00010001
[ 0.000000] Hash = 0xcfc00000
[ 0.000000] Hash_mask = 0xffff
[ 0.000000] -----------------------------------------------------
[ 0.000000] Found UniNorth PCI host bridge at 0x00000000f0000000. Firmware bus number: 0->1
[ 0.000000] PCI host bridge /pci@f0000000 ranges:
[ 0.000000] MEM 0x00000000f1000000..0x00000000f1ffffff -> 0x00000000f1000000
[ 0.000000] IO 0x00000000f0000000..0x00000000f07fffff -> 0x0000000000000000
[ 0.000000] MEM 0x00000000b0000000..0x00000000bfffffff -> 0x00000000b0000000
[ 0.000000] Found UniNorth PCI host bridge at 0x00000000f2000000. Firmware bus number: 0->1
[ 0.000000] PCI host bridge /pci@f2000000 (primary) ranges:
[ 0.000000] MEM 0x00000000f3000000..0x00000000f3ffffff -> 0x00000000f3000000
[ 0.000000] IO 0x00000000f2000000..0x00000000f27fffff -> 0x0000000000000000
[ 0.000000] MEM 0x0000000080000000..0x00000000afffffff -> 0x0000000080000000
[ 0.000000] Found UniNorth PCI host bridge at 0x00000000f4000000. Firmware bus number: 0->1
[ 0.000000] PCI host bridge /pci@f4000000 ranges:
[ 0.000000] MEM 0x00000000f5000000..0x00000000f5ffffff -> 0x00000000f5000000
[ 0.000000] IO 0x00000000f4000000..0x00000000f47fffff -> 0x0000000000000000
[ 0.000000] via-pmu: Server Mode is disabled
[ 0.000000] PMU driver v2 initialized for Core99, firmware: 0c
[ 0.000000] nvram: Checking bank 0...
[ 0.000000] nvram: gen0=676, gen1=675
[ 0.000000] nvram: Active bank is: 0
[ 0.000000] nvram: OF partition at 0x410
[ 0.000000] nvram: XP partition at 0x1020
[ 0.000000] nvram: NR partition at 0x1120
[ 0.000000] Top of RAM: 0x60000000, Total RAM: 0x60000000
[ 0.000000] Memory hole size: 0MB
[ 0.000000] Zone ranges:
[ 0.000000] DMA [mem 0x0000000000000000-0x000000002fffffff]
[ 0.000000] Normal empty
[ 0.000000] HighMem [mem 0x0000000030000000-0x000000005fffffff]
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x0000000000000000-0x000000005fffffff]
[ 0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000005fffffff]
[ 0.000000] On node 0 totalpages: 393216
[ 0.000000] free_area_init_node: node 0, pgdat c07aaf84, node_mem_map ef3db000
[ 0.000000] DMA zone: 1536 pages used for memmap
[ 0.000000] DMA zone: 0 pages reserved
[ 0.000000] DMA zone: 196608 pages, LIFO batch:31
[ 0.000000] HighMem zone: 196608 pages, LIFO batch:31
[ 0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[ 0.000000] pcpu-alloc: [0] 0
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 391680
[ 0.000000] Kernel command line: root=UUID=74dc016f-69db-4114-92e0-d6486a52ed19 ro
[ 0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
[ 0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
[ 0.000000] Memory: 1523876K/1572864K available (5388K kernel code, 516K rwdata, 1684K rodata, 352K init, 2269K bss, 48988K reserved, 0K cma-reserved, 786432K highmem)
[ 0.000000] Kernel virtual memory layout:
[ 0.000000] * 0xfffcf000..0xfffff000 : fixmap
[ 0.000000] * 0xff800000..0xffc00000 : highmem PTEs
[ 0.000000] * 0xfde27000..0xff800000 : early ioremap
[ 0.000000] * 0xf1000000..0xfde27000 : vmalloc & ioremap
[ 0.000000] NR_IRQS:512 nr_irqs:512 16
[ 0.000000] mpic: Resetting
[ 0.000000] mpic: Setting up MPIC " MPIC 1 " version 1.2 at 80040000, max 1 CPUs
[ 0.000000] mpic: ISU size: 64, shift: 6, mask: 3f
[ 0.000000] mpic: Initializing for 64 sources
[ 0.000000] GMT Delta read from XPRAM: 0 minutes, DST: off
[ 0.000000] time_init: decrementer frequency = 18.432000 MHz
[ 0.000000] time_init: processor frequency = 1666.666660 MHz
[ 0.000012] clocksource: timebase: mask: 0xffffffffffffffff max_cycles: 0x440407933, max_idle_ns: 440795202532 ns
[ 0.000437] clocksource: timebase mult[3640e38e] shift[24] registered
[ 0.000797] clockevent: decrementer mult[4b7f5a5] shift[32] cpu[0]
[ 0.001595] Console: colour dummy device 80x25
[ 0.001923] console [tty0] enabled
[ 0.002233] bootconsole [udbg0] disabled
[ 0.002875] pid_max: default: 32768 minimum: 301
[ 0.002996] Security Framework initialized
[ 0.003013] AppArmor: AppArmor disabled by boot time parameter
[ 0.003073] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.003088] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.003923] MPC7450 family performance monitor hardware support registered
[ 0.005673] devtmpfs: initialized
[ 0.006061] OF: Duplicate name in PowerPC,G4@0, renamed to "l2-cache#1"
[ 0.010639] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[ 0.010671] futex hash table entries: 256 (order: -1, 3072 bytes)
[ 0.011063] NET: Registered protocol family 16
[ 0.012329] KeyWest i2c @0xf8001003 irq 42 /uni-n@f8000000/i2c@f8001000
[ 0.012352] channel 1 bus /uni-n@f8000000/i2c@f8001000/i2c-bus@1
[ 0.012366] channel 0 bus /uni-n@f8000000/i2c@f8001000/i2c-bus@0
[ 0.012487] KeyWest i2c @0x80018000 irq 26 /pci@f2000000/mac-io@17/i2c@18000
[ 0.012505] channel 0 bus /pci@f2000000/mac-io@17/i2c@18000/i2c-bus@0
[ 0.012555] PMU i2c /pci@f2000000/mac-io@17/via-pmu@16000/pmu-i2c
[ 0.012569] channel 1 bus <multibus>
[ 0.012583] channel 2 bus <multibus>
[ 0.012991] PCI: Probing PCI hardware
[ 0.013134] PCI host bridge to bus 0000:00
[ 0.013158] pci_bus 0000:00: root bus resource [io 0x802000-0x1001fff] (bus address [0x0000-0x7fffff])
[ 0.013192] pci_bus 0000:00: root bus resource [mem 0xf1000000-0xf1ffffff]
[ 0.013242] pci_bus 0000:00: root bus resource [mem 0xb0000000-0xbfffffff]
[ 0.013265] pci_bus 0000:00: root bus resource [bus 00-ff]
[ 0.013287] pci_bus 0000:00: busn_res: [bus 00-ff] end is updated to ff
[ 0.013341] pci 0000:00:0b.0: [106b:0034] type 00 class 0x060000
[ 0.013584] pci 0000:00:10.0: [1002:4e50] type 00 class 0x030000
[ 0.013620] pci 0000:00:10.0: reg 0x10: [mem 0xb8000000-0xbfffffff pref]
[ 0.013645] pci 0000:00:10.0: reg 0x14: [io 0x802400-0x8024ff]
[ 0.013670] pci 0000:00:10.0: reg 0x18: [mem 0xb0000000-0xb000ffff]
[ 0.013709] pci 0000:00:10.0: reg 0x30: [mem 0xb0020000-0xb003ffff pref]
[ 0.013760] pci 0000:00:10.0: supports D1 D2
[ 0.013974] pci_bus 0000:00: busn_res: [bus 00-ff] end is updated to 00
[ 0.014116] PCI host bridge to bus 0001:10
[ 0.014135] pci_bus 0001:10: root bus resource [io 0x0000-0x7fffff]
[ 0.014156] pci_bus 0001:10: root bus resource [mem 0xf3000000-0xf3ffffff]
[ 0.014176] pci_bus 0001:10: root bus resource [mem 0x80000000-0xafffffff]
[ 0.014197] pci_bus 0001:10: root bus resource [bus 10-ff]
[ 0.014217] pci_bus 0001:10: busn_res: [bus 10-ff] end is updated to ff
[ 0.014266] pci 0001:10:0b.0: [106b:0035] type 00 class 0x060000
[ 0.014477] pci 0001:10:12.0: [14e4:4320] type 00 class 0x028000
[ 0.014511] pci 0001:10:12.0: reg 0x10: [mem 0xa0006000-0xa0007fff]
[ 0.014584] pci 0001:10:12.0: supports D1 D2
[ 0.014602] pci 0001:10:12.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 0.014782] pci 0001:10:13.0: [104c:ac56] type 02 class 0x060700
[ 0.014818] pci 0001:10:13.0: reg 0x10: [mem 0xa0004000-0xa0004fff]
[ 0.014867] pci 0001:10:13.0: supports D1 D2
[ 0.014884] pci 0001:10:13.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 0.015043] pci 0001:10:17.0: [106b:003e] type 00 class 0xff0000
[ 0.015075] pci 0001:10:17.0: reg 0x10: [mem 0x80000000-0x8007ffff]
[ 0.015261] pci 0001:10:19.0: [106b:003f] type 00 class 0x0c0310
[ 0.015293] pci 0001:10:19.0: reg 0x10: [mem 0x00000000-0x00000fff]
[ 0.015461] pci 0001:10:1a.0: [106b:003f] type 00 class 0x0c0310
[ 0.015492] pci 0001:10:1a.0: reg 0x10: [mem 0xa0003000-0xa0003fff]
[ 0.015675] pci 0001:10:1b.0: [1033:0035] type 00 class 0x0c0310
[ 0.015708] pci 0001:10:1b.0: reg 0x10: [mem 0xa0002000-0xa0002fff]
[ 0.015783] pci 0001:10:1b.0: supports D1 D2
[ 0.015800] pci 0001:10:1b.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 0.015959] pci 0001:10:1b.1: [1033:0035] type 00 class 0x0c0310
[ 0.015992] pci 0001:10:1b.1: reg 0x10: [mem 0xa0001000-0xa0001fff]
[ 0.016066] pci 0001:10:1b.1: supports D1 D2
[ 0.016084] pci 0001:10:1b.1: PME# supported from D0 D1 D2 D3hot D3cold
[ 0.016250] pci 0001:10:1b.2: [1033:00e0] type 00 class 0x0c0320
[ 0.016283] pci 0001:10:1b.2: reg 0x10: [mem 0xa0000000-0xa00000ff]
[ 0.016358] pci 0001:10:1b.2: supports D1 D2
[ 0.016375] pci 0001:10:1b.2: PME# supported from D0 D1 D2 D3hot D3cold
[ 0.016777] pci 0001:10:13.0: Primary bus is hard wired to 0
[ 0.016800] pci 0001:10:13.0: bridge configuration invalid ([bus 01-01]), reconfiguring
[ 0.016929] pci_bus 0001:11: busn_res: [bus 11-ff] end is updated to 14
[ 0.016955] pci_bus 0001:10: busn_res: [bus 10-ff] end is updated to 14
[ 0.017092] PCI host bridge to bus 0002:24
[ 0.017114] pci_bus 0002:24: root bus resource [io 0xff7fe000-0xffffdfff] (bus address [0x0000-0x7fffff])
[ 0.017142] pci_bus 0002:24: root bus resource [mem 0xf5000000-0xf5ffffff]
[ 0.017163] pci_bus 0002:24: root bus resource [bus 24-ff]
[ 0.017183] pci_bus 0002:24: busn_res: [bus 24-ff] end is updated to ff
[ 0.017228] pci 0002:24:0b.0: [106b:0036] type 00 class 0x060000
[ 0.017468] pci 0002:24:0d.0: [106b:003b] type 00 class 0xff0000
[ 0.017500] pci 0002:24:0d.0: reg 0x10: [mem 0xf5004000-0xf5007fff]
[ 0.017668] pci 0002:24:0e.0: [106b:0031] type 00 class 0x0c0010
[ 0.017698] pci 0002:24:0e.0: reg 0x10: [mem 0xf5000000-0xf5000fff]
[ 0.017760] pci 0002:24:0e.0: supports D1 D2
[ 0.017777] pci 0002:24:0e.0: PME# supported from D0 D1 D2 D3hot
[ 0.017942] pci 0002:24:0f.0: [106b:0032] type 00 class 0x020000
[ 0.017973] pci 0002:24:0f.0: reg 0x10: [mem 0xf5200000-0xf53fffff]
[ 0.018020] pci 0002:24:0f.0: reg 0x30: [mem 0xf5100000-0xf51fffff pref]
[ 0.018294] pci_bus 0002:24: busn_res: [bus 24-ff] end is updated to 24
[ 0.018419] PCI 0000:00 Cannot reserve Legacy IO [io 0x802000-0x802fff]
[ 0.018449] pci_bus 0000:00: resource 4 [io 0x802000-0x1001fff]
[ 0.018469] pci_bus 0000:00: resource 5 [mem 0xf1000000-0xf1ffffff]
[ 0.018489] pci_bus 0000:00: resource 6 [mem 0xb0000000-0xbfffffff]
[ 0.018531] pci 0001:10:13.0: BAR 15: assigned [mem 0x84000000-0x87ffffff pref]
[ 0.018557] pci 0001:10:13.0: BAR 16: assigned [mem 0x88000000-0x8bffffff]
[ 0.018578] pci 0001:10:13.0: BAR 13: assigned [io 0x1000-0x10ff]
[ 0.018599] pci 0001:10:13.0: BAR 14: assigned [io 0x1100-0x11ff]
[ 0.018621] pci 0001:10:13.0: CardBus bridge to [bus 11-14]
[ 0.018640] pci 0001:10:13.0: bridge window [io 0x1000-0x10ff]
[ 0.018660] pci 0001:10:13.0: bridge window [io 0x1100-0x11ff]
[ 0.018681] pci 0001:10:13.0: bridge window [mem 0x84000000-0x87ffffff pref]
[ 0.018707] pci 0001:10:13.0: bridge window [mem 0x88000000-0x8bffffff]
[ 0.018730] pci_bus 0001:10: resource 4 [io 0x0000-0x7fffff]
[ 0.018749] pci_bus 0001:10: resource 5 [mem 0xf3000000-0xf3ffffff]
[ 0.018769] pci_bus 0001:10: resource 6 [mem 0x80000000-0xafffffff]
[ 0.018789] pci_bus 0001:11: resource 0 [io 0x1000-0x10ff]
[ 0.018808] pci_bus 0001:11: resource 1 [io 0x1100-0x11ff]
[ 0.018827] pci_bus 0001:11: resource 2 [mem 0x84000000-0x87ffffff pref]
[ 0.018848] pci_bus 0001:11: resource 3 [mem 0x88000000-0x8bffffff]
[ 0.018870] pci_bus 0002:24: resource 4 [io 0xff7fe000-0xffffdfff]
[ 0.018890] pci_bus 0002:24: resource 5 [mem 0xf5000000-0xf5ffffff]
[ 0.022477] pci 0000:00:10.0: vgaarb: VGA device added: decodes=io+mem,owns=mem,locks=none
[ 0.022527] pci 0000:00:10.0: vgaarb: bridge control possible
[ 0.022542] vgaarb: loaded
[ 0.022779] SCSI subsystem initialized
[ 0.022920] libata version 3.00 loaded.
[ 0.023485] clocksource: Switched to clocksource timebase
[ 0.070084] NET: Registered protocol family 2
[ 0.070649] TCP established hash table entries: 8192 (order: 3, 32768 bytes)
[ 0.070739] TCP bind hash table entries: 8192 (order: 3, 32768 bytes)
[ 0.070820] TCP: Hash tables configured (established 8192 bind 8192)
[ 0.070991] UDP hash table entries: 512 (order: 1, 8192 bytes)
[ 0.071030] UDP-Lite hash table entries: 512 (order: 1, 8192 bytes)
[ 0.071212] NET: Registered protocol family 1
[ 0.071318] Apple USB OHCI 0001:10:19.0 disabled by firmware
[ 0.071342] pci 0001:10:19.0: Can't enable PCI device, BIOS handoff failed.
[ 0.071378] pci 0001:10:1a.0: enabling device (0000 -> 0002)
[ 0.127546] pci 0001:10:1b.0: enabling device (0000 -> 0002)
[ 0.187509] pci 0001:10:1b.1: enabling device (0000 -> 0002)
[ 0.247509] pci 0001:10:1b.2: enabling device (0004 -> 0006)
[ 0.247567] PCI: CLS mismatch (32 != 1020), using 32 bytes
[ 0.247762] Unpacking initramfs...
[ 1.386614] Freeing initrd memory: 21104K
[ 1.387014] Thermal assist unit not available
[ 1.387793] audit: initializing netlink subsys (disabled)
[ 1.388336] audit: type=2000 audit(1498260534.384:1): state=initialized audit_enabled=0 res=1
[ 1.388416] workingset: timestamp_bits=30 max_order=19 bucket_order=0
[ 1.390325] bounce: pool size: 64 pages
[ 1.390393] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
[ 1.390416] io scheduler noop registered
[ 1.390430] io scheduler deadline registered
[ 1.390486] io scheduler cfq registered (default)
[ 1.390501] io scheduler mq-deadline registered
[ 1.390914] radeonfb 0000:00:10.0: enabling device (0006 -> 0007)
[ 1.586741] radeonfb 0000:00:10.0: Invalid PCI ROM header signature: expecting 0xaa55, got 0x0303
[ 1.586774] radeonfb (0000:00:10.0): Invalid ROM signature 303 should be 0xaa55
[ 1.586801] radeonfb: Retrieved PLL infos from Open Firmware
[ 1.586820] radeonfb: Reference=27.00 MHz (RefDiv=12) Memory=203.00 Mhz, System=392.00 MHz
[ 1.586842] radeonfb: PLL min 12000 max 35000
[ 1.700594] i2c i2c-2: unable to read EDID block.
[ 1.884585] i2c i2c-2: unable to read EDID block.
[ 2.068585] i2c i2c-2: unable to read EDID block.
[ 2.508473] radeonfb: Monitor 1 type LCD found
[ 2.508487] radeonfb: EDID probed
[ 2.508500] radeonfb: Monitor 2 type no found
[ 2.508522] radeonfb: Using Firmware dividers 0x0002008e from PPLL 0
[ 2.508596] radeonfb: Dynamic Clock Power Management enabled
[ 2.531918] Console: switching to colour frame buffer device 160x53
[ 2.540272] radeonfb: Backlight initialized (radeonbl0)
[ 2.540360] radeonfb (0000:00:10.0): ATI Radeon 4e50 "NP"
[ 2.540982] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[ 2.541886] pmac_zilog: 0.6 (Benjamin Herrenschmidt <benh@kernel.crashing.org>)
[ 2.542030] Serial: MPC52xx PSC UART driver
[ 2.542148] Generic non-volatile memory driver v1.1
[ 2.542332] Linux agpgart interface v0.103
[ 2.542441] agpgart-uninorth 0000:00:0b.0: Apple UniNorth 2 chipset
[ 2.543657] agpgart-uninorth 0000:00:0b.0: configuring for size idx: 64
[ 2.543872] agpgart-uninorth 0000:00:0b.0: AGP aperture is 256M @ 0x0
[ 2.544158] MacIO PCI driver attached to Intrepid chipset
[ 2.545471] 0.00013020:ch-a: ttyPZ0 at MMIO 0x80013020 (irq = 22, base_baud = 230400) is a Z85c30 ESCC - Serial port
[ 2.545994] 0.00013000:ch-b: ttyPZ1 at MMIO 0x80013000 (irq = 23, base_baud = 230400) is a Z85c30 ESCC - Serial port
[ 2.546954] pata-pci-macio 0002:24:0d.0: enabling device (0000 -> 0002)
[ 2.547202] adb: starting probe task...
[ 2.547284] adb: finished probe task...
[ 2.563517] pata-pci-macio 0002:24:0d.0: Activating pata-macio chipset UniNorth ATA-6, Apple bus ID 3
[ 2.564225] scsi host0: pata_macio
[ 2.564471] ata1: PATA max UDMA/100 irq 39
[ 2.726107] ata1.00: ATA-6: ST9160821A, 3.ALD, max UDMA/100
[ 2.726208] ata1.00: 312581808 sectors, multi 16: LBA48
[ 2.730986] ata1.00: configured for UDMA/100
[ 2.731423] scsi 0:0:0:0: Direct-Access ATA ST9160821A D PQ: 0 ANSI: 5
[ 2.732368] sd 0:0:0:0: [sda] 312581808 512-byte logical blocks: (160 GB/149 GiB)
[ 2.732536] sd 0:0:0:0: [sda] Write Protect is off
[ 2.732625] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
[ 2.732773] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 2.740338] sda: [mac] sda1 sda2 sda3 sda4 sda5
[ 2.746310] sd 0:0:0:0: [sda] Attached SCSI disk
[ 3.619501] pata-macio 0.00020000:ata-3: Activating pata-macio chipset KeyLargo ATA-3, Apple bus ID 0
[ 3.624738] scsi host1: pata_macio
[ 3.629578] ata2: PATA max MWDMA2 irq 24
[ 3.634492] cnic: QLogic cnicDriver v2.5.22 (July 20, 2015)
[ 3.639582] mousedev: PS/2 mouse device common for all mice
[ 3.644739] rtc-generic rtc-generic: rtc core: registered rtc-generic as rtc0
[ 3.649577] pmac32_cpufreq: Registering PowerMac CPU frequency driver
[ 3.654399] pmac32_cpufreq: Low: 833 Mhz, High: 1666 Mhz, Boot: 833 Mhz
[ 3.667630] drop_monitor: Initializing network drop monitor service
[ 3.671851] NET: Registered protocol family 17
[ 3.675987] NET: Registered protocol family 33
[ 3.680023] Key type rxrpc registered
[ 3.683988] Key type rxrpc_s registered
[ 3.687901] sctp: Hash tables configured (bind 1024/1024)
[ 3.691887] Key type dns_resolver registered
[ 3.695813] Key type ceph registered
[ 3.699844] libceph: loaded (mon/osd proto 15/24)
[ 3.704131] registered taskstats version 1
[ 3.708448] hd: no drives specified - use hd=cyl,head,sectors on kernel command line
[ 3.712667] input: PMU as /devices/virtual/input/input0
[ 3.717078] rtc-generic rtc-generic: setting system clock to 2017-06-23 23:28:57 UTC (1498260537)
[ 3.721426] PM: Hibernation image not present or could not be loaded.
[ 3.794071] ata2.00: ATAPI: MATSHITADVD-R UJ-845E, DMP2, max UDMA/66
[ 3.802940] ata2.00: configured for MWDMA2
[ 3.811618] scsi 1:0:0:0: CD-ROM MATSHITA DVD-R UJ-845E DMP2 PQ: 0 ANSI: 5
[ 3.828738] Freeing unused kernel memory: 352K
[ 3.833093] This architecture does not have kernel memory protection.
[ 3.900734] udevd[70]: starting version 175
[ 4.189558] sungem.c:v1.0 David S. Miller <davem@redhat.com>
[ 4.197762] sr 1:0:0:0: [sr0] scsi3-mmc drive: 24x/24x writer cd/rw xa/form2 cdda tray
[ 4.202233] cdrom: Uniform CD-ROM driver Revision: 3.20
[ 4.222148] gem 0002:24:0f.0 eth0: Sun GEM (PCI) 10/100/1000BaseT Ethernet 00:11:24:ca:df:de
[ 4.243187] sr 1:0:0:0: Attached scsi CD-ROM sr0
[ 4.305695] random: fast init done
[ 4.413437] EXT4-fs (sda3): INFO: recovery required on readonly filesystem
[ 4.417739] EXT4-fs (sda3): write access will be enabled during recovery
[ 8.542043] random: crng init done
[ 8.578819] EXT4-fs (sda3): recovery complete
[ 8.608861] EXT4-fs (sda3): mounted filesystem with ordered data mode. Opts: (null)
[ 23.336757] input: Macintosh mouse button emulation as /devices/virtual/input/input1
[ 23.428969] udevd[240]: starting version 175
[ 23.475314] Adding 4509592k swap on /dev/sda4. Priority:-1 extents:1 across:4509592k
[ 23.699711] loop: module loaded
[ 23.805681] PowerMac i2c bus pmu 2 registered
[ 23.805743] PowerMac i2c bus pmu 1 registered
[ 23.805794] PowerMac i2c bus mac-io 0 registered
[ 23.805902] PowerMac i2c bus uni-n 0 registered
[ 23.805998] PowerMac i2c bus uni-n 1 registered
[ 23.807293] adt746x: version 1 (supported)
[ 23.807298] sensor 0: CPU/INTREPID BOTTOMSIDE
[ 23.807300] sensor 1: CPU BOTTOMSIDE
[ 23.807301] sensor 2: PWR SUPPLY BOTTOMSIDE
[ 23.808505] adt746x: ADT7467 initializing
[ 23.811046] adt746x: Lowering max temperatures from 81, 80, 87 to 70, 50, 70
[ 23.852263] EXT4-fs (sda3): re-mounted. Opts: errors=remount-ro
[ 24.078880] yenta_cardbus 0001:10:13.0: CardBus bridge found [0000:0000]
[ 24.078901] yenta_cardbus 0001:10:13.0: Enabling burst memory read transactions
[ 24.078906] yenta_cardbus 0001:10:13.0: Using CSCINT to route CSC interrupts to PCI
[ 24.078909] yenta_cardbus 0001:10:13.0: Routing CardBus interrupts to PCI
[ 24.078915] yenta_cardbus 0001:10:13.0: TI: mfunc 0x00001002, devctl 0x60
[ 24.196545] yenta_cardbus 0001:10:13.0: ISA IRQ mask 0x0000, PCI irq 53
[ 24.196552] yenta_cardbus 0001:10:13.0: Socket status: 30000007
[ 24.196567] yenta_cardbus 0001:10:13.0: pcmcia: parent PCI bridge window: [io 0x0000-0x7fffff]
[ 24.196571] yenta_cardbus 0001:10:13.0: pcmcia: parent PCI bridge window: [mem 0xf3000000-0xf3ffffff]
[ 24.196576] pcmcia_socket pcmcia_socket0: cs: memory probe 0xf3000000-0xf3ffffff:
[ 24.196590] clean
[ 24.196594] yenta_cardbus 0001:10:13.0: pcmcia: parent PCI bridge window: [mem 0x80000000-0xafffffff]
[ 24.196597] pcmcia_socket pcmcia_socket0: cs: memory probe 0x80000000-0xafffffff:
[ 24.196600] excluding 0x80000000-0x807fffff 0x84000000-0x8bffffff 0xa0000000-0xa07fffff
[ 24.223742] b43-pci-bridge 0001:10:12.0: enabling device (0004 -> 0006)
[ 24.223800] ssb: Found chip with id 0x4306, rev 0x03 and package 0x00
[ 24.223806] ssb: Core 0 found: ChipCommon (cc 0x800, rev 0x04, vendor 0x4243)
[ 24.223811] ssb: Core 1 found: IEEE 802.11 (cc 0x812, rev 0x05, vendor 0x4243)
[ 24.223816] ssb: Core 2 found: PCMCIA (cc 0x80D, rev 0x02, vendor 0x4243)
[ 24.223821] ssb: Core 3 found: V90 (cc 0x807, rev 0x02, vendor 0x4243)
[ 24.223825] ssb: Core 4 found: PCI (cc 0x804, rev 0x09, vendor 0x4243)
[ 24.264740] ssb: Sonics Silicon Backplane found on PCI device 0001:10:12.0
[ 24.712531] usbcore: registered new interface driver usbfs
[ 24.719882] usbcore: registered new interface driver hub
[ 24.760065] usbcore: registered new device driver usb
[ 24.761560] init: bluetooth main process (437) terminated with status 1
[ 24.761675] init: bluetooth main process ended, respawning
[ 25.090624] init: bluetooth main process (486) terminated with status 1
[ 25.090732] init: bluetooth main process ended, respawning
[ 25.120824] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[ 25.197140] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 25.197146] Warning! ehci_hcd should always be loaded before uhci_hcd and ohci_hcd, not after
[ 25.240460] ohci-pci: OHCI PCI platform driver
[ 25.240520] Apple USB OHCI 0001:10:19.0 disabled by firmware
[ 25.240591] ohci-pci 0001:10:1a.0: OHCI PCI host controller
[ 25.240624] ohci-pci 0001:10:1a.0: new USB bus registered, assigned bus number 1
[ 25.240703] ohci-pci 0001:10:1a.0: irq 29, io mem 0xa0003000
[ 25.263409] ehci-pci: EHCI PCI platform driver
[ 25.359324] init: bluetooth main process (527) terminated with status 1
[ 25.359432] init: bluetooth main process ended, respawning
[ 25.603700] init: bluetooth main process (552) terminated with status 1
[ 25.603810] init: bluetooth main process ended, respawning
[ 25.731864] sungem_phy: PHY ID: 1410cc2, addr: 0
[ 25.731921] gem 0002:24:0f.0 eth0: Found Marvell 88E1111 PHY
[ 25.767701] init: bluetooth main process (576) terminated with status 1
[ 25.767806] init: bluetooth main process ended, respawning
[ 25.823393] usb usb1: New USB device found, idVendor=1d6b, idProduct=0001
[ 25.823401] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 25.823404] usb usb1: Product: OHCI PCI host controller
[ 25.823407] usb usb1: Manufacturer: Linux 4.11.0-rc1+ ohci_hcd
[ 25.823410] usb usb1: SerialNumber: 0001:10:1a.0
[ 25.851538] hub 1-0:1.0: USB hub found
[ 25.851571] hub 1-0:1.0: 2 ports detected
[ 25.873348] ehci-pci 0001:10:1b.2: EHCI Host Controller
[ 25.873373] ehci-pci 0001:10:1b.2: new USB bus registered, assigned bus number 2
[ 25.873457] ehci-pci 0001:10:1b.2: irq 63, io mem 0xa0000000
[ 25.887554] ehci-pci 0001:10:1b.2: USB 2.0 started, EHCI 1.00
[ 25.890737] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
[ 25.890744] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 25.890747] usb usb2: Product: EHCI Host Controller
[ 25.890750] usb usb2: Manufacturer: Linux 4.11.0-rc1+ ehci_hcd
[ 25.890753] usb usb2: SerialNumber: 0001:10:1b.2
[ 25.891387] hub 2-0:1.0: USB hub found
[ 25.891422] hub 2-0:1.0: 5 ports detected
[ 25.903614] ohci-pci 0001:10:1b.0: OHCI PCI host controller
[ 25.903638] ohci-pci 0001:10:1b.0: new USB bus registered, assigned bus number 3
[ 25.903699] ohci-pci 0001:10:1b.0: irq 63, io mem 0xa0002000
[ 25.924773] init: bluetooth main process (601) terminated with status 1
[ 25.924879] init: bluetooth main process ended, respawning
[ 26.280919] usb 1-1: new full-speed USB device number 2 using ohci-pci
[ 26.286243] init: failsafe main process (634) killed by TERM signal
[ 26.292052] init: bluetooth main process (649) terminated with status 1
[ 26.292168] init: bluetooth main process ended, respawning
[ 26.521612] init: bluetooth main process (686) terminated with status 1
[ 26.521731] init: bluetooth main process ended, respawning
[ 26.543626] usb 1-1: New USB device found, idVendor=05ac, idProduct=1000
[ 26.543635] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 26.723681] usb 1-2: new full-speed USB device number 3 using ohci-pci
[ 26.791570] init: bluetooth main process (715) terminated with status 1
[ 26.791688] init: bluetooth main process ended, respawning
[ 26.859983] usb usb3: New USB device found, idVendor=1d6b, idProduct=0001
[ 26.859988] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 26.859991] usb usb3: Product: OHCI PCI host controller
[ 26.859994] usb usb3: Manufacturer: Linux 4.11.0-rc1+ ohci_hcd
[ 26.859996] usb usb3: SerialNumber: 0001:10:1b.0
[ 26.867830] hub 3-0:1.0: USB hub found
[ 26.872240] hub 3-0:1.0: 3 ports detected
[ 26.902602] ohci-pci 0001:10:1b.1: OHCI PCI host controller
[ 26.902623] ohci-pci 0001:10:1b.1: new USB bus registered, assigned bus number 4
[ 26.902691] ohci-pci 0001:10:1b.1: irq 63, io mem 0xa0001000
[ 26.986616] usb 1-2: New USB device found, idVendor=05ac, idProduct=020e
[ 26.986625] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 26.986628] usb 1-2: Product: Apple Internal Keyboard/Trackpad
[ 26.986630] usb 1-2: Manufacturer: Apple Computer
[ 27.012367] init: bluetooth main process (757) terminated with status 1
[ 27.012476] init: bluetooth main process ended, respawning
[ 27.166119] init: bluetooth main process (782) terminated with status 1
[ 27.166224] init: bluetooth respawning too fast, stopped
[ 28.133914] radeonfb 0000:00:10.0: Invalid PCI ROM header signature: expecting 0xaa55, got 0x0303
[ 28.134030] radeonfb 0000:00:10.0: Invalid PCI ROM header signature: expecting 0xaa55, got 0x0303
[ 28.226700] usb usb4: New USB device found, idVendor=1d6b, idProduct=0001
[ 28.226708] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 28.226711] usb usb4: Product: OHCI PCI host controller
[ 28.226714] usb usb4: Manufacturer: Linux 4.11.0-rc1+ ohci_hcd
[ 28.226717] usb usb4: SerialNumber: 0001:10:1b.1
[ 28.243314] hub 4-0:1.0: USB hub found
[ 28.243823] hub 4-0:1.0: 2 ports detected
[ 28.589356] [drm] radeon kernel modesetting enabled.
[ 28.591227] pcmcia_socket pcmcia_socket0: cs: memory probe 0x80000000-0x80ffffff:
[ 28.591238] excluding 0x80000000-0x800fffff
[ 28.636079] ams: Found I2C based motion sensor
[ 28.990932] input: appletouch as /devices/pci0001:10/0001:10:1a.0/usb1/1-2/1-2:1.1/input/input2
[ 28.992138] usbcore: registered new interface driver appletouch
[ 29.037670] hidraw: raw HID events driver (C) Jiri Kosina
[ 29.127988] usbcore: registered new interface driver usbhid
[ 29.127994] usbhid: USB HID core driver
[ 29.212731] input: Apple Computer Apple Internal Keyboard/Trackpad as /devices/pci0001:10/0001:10:1a.0/usb1/1-2/1-2:1.0/0003:05AC:020E.0003/input/input3
[ 29.273049] apple 0003:05AC:020E.0003: input,hidraw0: USB HID v1.10 Keyboard [Apple Computer Apple Internal Keyboard/Trackpad] on usb-0001:10:1a.0-2/input0
[ 29.281434] input: Apple Computer Apple Internal Keyboard/Trackpad as /devices/pci0001:10/0001:10:1a.0/usb1/1-2/1-2:1.2/0003:05AC:020E.0004/input/input4
[ 29.308055] b43-phy0: Broadcom 4306 WLAN found (core revision 5)
[ 29.323553] b43-phy0: Found PHY: Analog 2, Type 2 (G), Revision 2
[ 29.323577] b43-phy0: Found Radio: Manuf 0x17F, ID 0x2050, Revision 2, Version 0
[ 29.337763] usb 1-1: USB disconnect, device number 2
[ 29.344052] usb 1-1: usbfs: USBDEVFS_CONTROL failed cmd hid2hci rqt 64 rq 0 len 0 ret -62
[ 29.350124] Broadcom 43xx driver loaded [ Features: PL ]
[ 29.351256] apple 0003:05AC:020E.0004: input,hidraw1: USB HID v1.10 Device [Apple Computer Apple Internal Keyboard/Trackpad] on usb-0001:10:1a.0-2/input2
[ 29.379671] gem 0002:24:0f.0 eth0: Link is up at 1000 Mbps, full-duplex
[ 29.379784] gem 0002:24:0f.0 eth0: Pause is enabled (rxfifo: 10240 off: 7168 on: 5632)
[ 29.472075] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'
[ 29.711533] usb 1-1: new full-speed USB device number 4 using ohci-pci
[ 29.918975] b43-phy0: Loading firmware version 666.2 (2011-02-23 01:15:07)
[ 30.091641] usb 1-1: New USB device found, idVendor=05ac, idProduct=8205
[ 30.091650] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 30.863572] input: Mouseemu virtual keyboard as /devices/virtual/input/input5
[ 30.868271] input: Mouseemu virtual mouse as /devices/virtual/input/input6
[ 33.261201] fuse init (API version 7.26)
[-- Attachment #3: mac_error.jpg --]
[-- Type: image/jpeg, Size: 808648 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Regression in kernel 4.12-rc1 for Powerpc 32 - bisected to commit 3448890c32c3
2017-06-23 20:29 ` Regression in kernel 4.12-rc1 for Powerpc 32 - bisected to commit 3448890c32c3 Al Viro
2017-06-24 0:04 ` Larry Finger
@ 2017-06-24 17:29 ` Larry Finger
2017-06-25 9:53 ` Al Viro
2017-06-26 13:40 ` Regression in kernel 4.12-rc1 for Powerpc 32 - bisected to commit 3448890c32c3 Michael Ellerman
1 sibling, 2 replies; 10+ messages in thread
From: Larry Finger @ 2017-06-24 17:29 UTC (permalink / raw)
To: Al Viro; +Cc: LKML, Thorsten Leemhuis, linuxppc-dev
On 06/23/2017 03:29 PM, Al Viro wrote:
> On Fri, Jun 23, 2017 at 01:49:16PM -0500, Larry Finger wrote:
>
>>> BTW, could you try to check what happens if you kill the
>>> if (__builtin_constant_p(n) && (n <= 8))
>>> bits in raw_copy_{to,from}_user()? The usefulness of those (in __copy_from_user()
>>> originally) had always been dubious and the things are simpler without them.
>>> If _that_ turns out to cure breakage, I would be very surprised, though.
>>>
>> Sorry I was gone so long. Installing jessie on this box resulted in a crash
>> on boot. Lubuntu 14.04 yielded a desktop with a functioning cursor, but
>> nothing else. Finally, Ubuntu 12.04 resulted in a working system. I hate
>> Unity, but I guess I'm stuck for now.
>
> Ho-hum... Jessie is 3.16, so whatever is crashing there, it's something
> different... Ubuntu 12.04 is what, 3.2?
>
>> I know how easy it is to screw up a long bisection by booting the wrong
>> kernel. To help that problem and to work around the yaconf/yboot nonsense on
>> the MAC, my /etc/yaconf has always had generic kernel stanzas with only
>> default, old, and original kernels mentioned. From there I use a local
>> script to finish a kernel installation by moving the default links to the
>> old ones and creating the new default links pointing to the current kernel.
>> With those long-tested scripts, I'm sure that I am booting the one I want.
>>
>> With the new installation, kernel 4.12-rc6 failed, as did 3448890c with the
>> backported 46f401c4 added.
>>
>> Replacing "if (__builtin_constant_p(n) && (n <= 8))" with "if (0)" had no effect.
>
> OK, that simplifies things a bit. Just to make sure we are on the same page:
>
> * f2ed8bebee69 + cherry-pick of 46f401c4 boots (Ubuntu 12.04 userland)
> * 3448890c32c3 + cherry-pick of 46f401c4 fails (Ubuntu 12.04 userland), ditto
> with removal of constant-size bits in raw_copy_..._user(). Failure appears
> to be on udev getting EFAULT on some syscalls.
> * straight Ubuntu 12.04 works
> * jessie crashes on boot.
I made a break through. If I turn off inline copy to/from users for 32-bit ppc
with the following patch, then the system boots:
diff --git a/arch/powerpc/include/asm/uaccess.h b/arch/powerpc/include/asm/uaccess.h
index 5c0d8a8cdae5..1e6a8723f497 100644
--- a/arch/powerpc/include/asm/uaccess.h
+++ b/arch/powerpc/include/asm/uaccess.h
@@ -267,12 +267,7 @@ do {
\
extern unsigned long __copy_tofrom_user(void __user *to,
const void __user *from, unsigned long size);
-#ifndef __powerpc64__
-
-#define INLINE_COPY_FROM_USER
-#define INLINE_COPY_TO_USE
-
-#else /* __powerpc64__ */
+#ifdef __powerpc64__
static inline unsigned long
raw_copy_in_user(void __user *to, const void __user *from, unsigned long n)
It seems whatever problem I am seeing is in the inline version of
_copy_to_user() and _copy_from_user() on the 32-bit ppc. The only other
difference between the two versions is the placement of the __user macro, which
looks to be wrong in the non-inlined version of _copy_to_user() in
lib/usercopy.c, but that is the one that works.
To me, this looks like a compiler error. On the PowerBook, 'gcc --version'
reports "gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3".
I will prepare a proper patch that I will send to you privately. If you agree
with it, it can be send through normal channels in time for the release of 4.12.
Larry
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: Regression in kernel 4.12-rc1 for Powerpc 32 - bisected to commit 3448890c32c3
2017-06-24 17:29 ` Larry Finger
@ 2017-06-25 9:53 ` Al Viro
2017-06-25 11:14 ` Al Viro
2017-06-26 13:40 ` Regression in kernel 4.12-rc1 for Powerpc 32 - bisected to commit 3448890c32c3 Michael Ellerman
1 sibling, 1 reply; 10+ messages in thread
From: Al Viro @ 2017-06-25 9:53 UTC (permalink / raw)
To: Larry Finger; +Cc: LKML, Thorsten Leemhuis, linuxppc-dev
On Sat, Jun 24, 2017 at 12:29:23PM -0500, Larry Finger wrote:
> I made a break through. If I turn off inline copy to/from users for 32-bit
> ppc with the following patch, then the system boots:
OK... So it's 4.6.3 miscompiling something - it is hardware-independent,
reproduced in qemu. I'd like to get more self-contained example of
miscompile, though; should be done by tonight...
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Regression in kernel 4.12-rc1 for Powerpc 32 - bisected to commit 3448890c32c3
2017-06-25 9:53 ` Al Viro
@ 2017-06-25 11:14 ` Al Viro
2017-06-25 20:53 ` gcc 4.6.3 miscompile on ppc32 (was Re: Regression in kernel 4.12-rc1 for Powerpc 32 - bisected to commit 3448890c32c3) Al Viro
0 siblings, 1 reply; 10+ messages in thread
From: Al Viro @ 2017-06-25 11:14 UTC (permalink / raw)
To: Larry Finger; +Cc: LKML, Thorsten Leemhuis, linuxppc-dev
On Sun, Jun 25, 2017 at 10:53:58AM +0100, Al Viro wrote:
> On Sat, Jun 24, 2017 at 12:29:23PM -0500, Larry Finger wrote:
>
> > I made a break through. If I turn off inline copy to/from users for 32-bit
> > ppc with the following patch, then the system boots:
>
> OK... So it's 4.6.3 miscompiling something - it is hardware-independent,
> reproduced in qemu. I'd like to get more self-contained example of
> miscompile, though; should be done by tonight...
OK, it's the call in rw_copy_check_uvector(); with INLINE_COPY_FROM_USER
it's miscompiled by 4.6.3. I hadn't looked through the generated code
yet; will do that after I grab some sleep.
^ permalink raw reply [flat|nested] 10+ messages in thread
* gcc 4.6.3 miscompile on ppc32 (was Re: Regression in kernel 4.12-rc1 for Powerpc 32 - bisected to commit 3448890c32c3)
2017-06-25 11:14 ` Al Viro
@ 2017-06-25 20:53 ` Al Viro
2017-06-25 21:44 ` Segher Boessenkool
0 siblings, 1 reply; 10+ messages in thread
From: Al Viro @ 2017-06-25 20:53 UTC (permalink / raw)
To: Larry Finger; +Cc: LKML, Thorsten Leemhuis, linuxppc-dev, Linus Torvalds
[-- Attachment #1: Type: text/plain, Size: 2667 bytes --]
On Sun, Jun 25, 2017 at 12:14:04PM +0100, Al Viro wrote:
> On Sun, Jun 25, 2017 at 10:53:58AM +0100, Al Viro wrote:
> > On Sat, Jun 24, 2017 at 12:29:23PM -0500, Larry Finger wrote:
> >
> > > I made a break through. If I turn off inline copy to/from users for 32-bit
> > > ppc with the following patch, then the system boots:
> >
> > OK... So it's 4.6.3 miscompiling something - it is hardware-independent,
> > reproduced in qemu. I'd like to get more self-contained example of
> > miscompile, though; should be done by tonight...
>
> OK, it's the call in rw_copy_check_uvector(); with INLINE_COPY_FROM_USER
> it's miscompiled by 4.6.3. I hadn't looked through the generated code
> yet; will do that after I grab some sleep.
Confirmed. It manages to bugger the loop immediately after the (successful)
copying of iovec array in rw_copy_check_uvector(); both with and without
INLINE_COPY_FROM_USER it has (just before the call of copy_from_user()) r27
set to nr_segs * sizeof(struct iovec). The call is made, we check that it
has succeeded and that's when it hits the fan: without INLINE_COPY_FROM_USER
we have (interleaved with unrelated insns)
addi 27,27,-8
srwi 27,27,3
addi 27,27,1
mtctr 27
Weird, but manages to pass nr_segs to mtctr. _With_ INLINE_COPY_FROM_USER we
get this:
lis 9,0x2000
mtctr 9
In other words, the loop will try to go through 8192 iterations. No idea where
that number has come from, but it sure as hell is wrong. That's where those
-EINVAL, etc. are coming from - we run into something negative in iov[seg].len,
after having run out of on-stack iovec array.
Assembler generated out of rw_copy_check_uvector() with and without
INLINE_COPY_FROM_USER is attached; it's a definite miscompile. Neither 4.4.5
nor 6.3.0 use mtctr/bdnz for that loop.
The bottom line is, ppc cross-toolchain on kernel.org happens to be
the version that miscompiles rw_copy_check_uvector() with INLINE_COPY_FROM_USER
and hell knows what else. Said that, I would rather have ppc32 drop the
INLINE_COPY_{TO,FROM}_USER anyway; that won't fix any other places where
the same 4.6.3 bug hits, but I seriously suspect that it will end up being
faster even on non^Wless buggy gcc versions. Could powerpc folks check
what does removing those two defines from arch/powerpc/include/asm/uaccess.h
do to performance? If there's no slowdown, I would strongly recommend just
removing those as in the patch Larry has posted upthread.
Fixing whatever it is in gcc 4.6.3 that triggers that behaviour is
IMO pointless - it might make sense to switch kernel.org cross-toolchain to
something more recent, but that's it.
[-- Attachment #2: rw_copy_check_uvector() with INLINE_COPY_FROM_USER --]
[-- Type: text/plain, Size: 3342 bytes --]
.globl rw_copy_check_uvector
.type rw_copy_check_uvector, @function
rw_copy_check_uvector:
.LFB2683:
.loc 1 773 0
stwu 1,-32(1) #,,
.LCFI142:
mflr 0 #,
.LCFI143:
stmw 27,12(1) #,
.LCFI144:
.loc 1 783 0
mr. 27,5 # nr_segs, nr_segs
.loc 1 773 0
mr 30,3 # type, type
stw 0,36(1) #,
.LCFI145:
.loc 1 773 0
mr 31,4 # uvector, uvector
mr 29,8 # ret_pointer, ret_pointer
.loc 1 776 0
mr 28,7 # iov, fast_pointer
.loc 1 784 0
li 0,0 # ret,
.loc 1 783 0
beq- 0,.L495 #
.loc 1 792 0
cmplwi 7,27,1024 #, tmp160, nr_segs
.loc 1 793 0
li 0,-22 # ret,
.loc 1 792 0
bgt- 7,.L495 #
.loc 1 796 0
cmplw 7,27,6 # fast_segs, tmp161, nr_segs
ble- 7,.L496 #
.LBB1538:
.LBB1539:
.file 21 "./include/linux/slab.h"
.loc 21 495 0
lis 4,0x140 # tmp190,
slwi 3,27,3 #, nr_segs,
ori 4,4,192 #,, tmp190,
bl __kmalloc #
.LBE1539:
.LBE1538:
.loc 1 799 0
li 0,-12 # ret,
.loc 1 798 0
mr. 28,3 # iov,
beq- 0,.L495 #
.L496:
.LBB1540:
.LBB1541:
.LBB1542:
.LBB1543:
.loc 19 113 0
lwz 0,1128(2) # current.192_185->thread.fs.seg, D.39493
.LBE1543:
.LBE1542:
.LBE1541:
.LBE1540:
.loc 1 803 0
slwi 27,27,3 # n, nr_segs,
.LBB1549:
.LBB1548:
.LBB1547:
.LBB1546:
mr 5,27 # n, n
.loc 19 113 0
cmplw 7,31,0 # D.39493, tmp165, uvector
bgt- 7,.L497 #
addi 9,27,-1 # tmp166, n,
subf 0,31,0 # tmp167, uvector, D.39493
cmplw 7,9,0 # tmp167, tmp168, tmp166
bgt- 7,.L497 #
.LBB1544:
.LBB1545:
.file 22 "./arch/powerpc/include/asm/uaccess.h"
.loc 22 305 0
mr 3,28 #, iov
mr 4,31 #, uvector
bl __copy_tofrom_user #
.LBE1545:
.LBE1544:
.loc 19 115 0
mr. 5,3 # n,
beq+ 0,.L498 #
.L497:
.loc 19 116 0
subf 3,5,27 # tmp170, n, n
li 4,0 #,
add 3,28,3 #, iov, tmp170
bl memset #
b .L510 #
.L498:
.LBE1546:
.LBE1547:
.LBE1548:
.LBE1549:
.LBB1550:
.loc 1 833 0
lis 9,0x2000 #,
.loc 1 828 0
cmpwi 6,30,0 #, tmp186, type
.loc 1 833 0
lis 6,0x7fff # tmp189,
mtctr 9 # tmp188,
.loc 1 829 0
mr 5,2 # current.121, current
li 8,0 # ivtmp.533,
li 0,0 # ret,
.loc 1 833 0
ori 6,6,61440 #, tmp187, tmp189,
.L501:
.loc 1 819 0
mr 11,28 # D.40168, iov
lwzux 10,11,8 # MEM[base: iov_4, index: ivtmp.533_176, offset: 0B], buf
.loc 1 820 0
lwz 9,4(11) # MEM[base: D.40168_211, offset: 4B], len
.loc 1 824 0
cmpwi 7,9,0 #, tmp175, len
blt- 7,.L508 #
.loc 1 828 0
blt- 6,.L499 #
.loc 1 829 0
lwz 7,1128(5) # current.121_33->thread.fs.seg, D.36573
cmplw 1,10,7 # D.36573, tmp177, buf
bgt- 1,.L510 #
.loc 1 829 0 is_stmt 0 discriminator 1
beq- 7,.L499 #
.loc 1 829 0 discriminator 4
addi 4,9,-1 # tmp179, len,
subf 10,10,7 # tmp180, buf, D.36573
cmplw 7,4,10 # tmp180, tmp181, tmp179
bgt- 7,.L510 #
.L499:
.loc 1 833 0 is_stmt 1
subf 10,0,6 # len, ret, tmp187
cmpw 7,9,10 # len, tmp183, len
ble- 7,.L500 #
.loc 1 835 0
stw 10,4(11) # MEM[base: D.40168_211, offset: 4B], len
mr 9,10 # len, len
.L500:
.loc 1 837 0
add 0,0,9 # ret, ret, len
addi 8,8,8 # ivtmp.533, ivtmp.533,
.LBE1550:
.loc 1 818 0
bdnz .L501 #
b .L495 #
.L508:
.LBB1551:
.loc 1 825 0
li 0,-22 # ret,
b .L495 #
.L510:
.loc 1 830 0
li 0,-14 # ret,
.L495:
.LBE1551:
.loc 1 842 0
addi 11,1,32 #,,
.loc 1 840 0
stw 28,0(29) # *ret_pointer_53(D), iov
.loc 1 842 0
mr 3,0 #, ret
b _restgpr_27_x #
.LFE2683:
.size rw_copy_check_uvector,.-rw_copy_check_uvector
[-- Attachment #3: the same without INLINE_COPY_FROM_USER --]
[-- Type: text/plain, Size: 2872 bytes --]
.globl rw_copy_check_uvector
.type rw_copy_check_uvector, @function
rw_copy_check_uvector:
.LFB2683:
.loc 1 773 0
stwu 1,-32(1) #,,
.LCFI142:
mflr 0 #,
.LCFI143:
stmw 27,12(1) #,
.LCFI144:
.loc 1 783 0
mr. 27,5 # nr_segs, nr_segs
.loc 1 773 0
mr 31,3 # type, type
stw 0,36(1) #,
.LCFI145:
.loc 1 773 0
mr 30,4 # uvector, uvector
mr 29,8 # ret_pointer, ret_pointer
.loc 1 776 0
mr 28,7 # iov, fast_pointer
.loc 1 784 0
li 0,0 # ret,
.loc 1 783 0
beq- 0,.L495 #
.loc 1 792 0
cmplwi 7,27,1024 #, tmp151, nr_segs
.loc 1 793 0
li 0,-22 # ret,
.loc 1 792 0
bgt- 7,.L495 #
.loc 1 796 0
cmplw 7,27,6 # fast_segs, tmp152, nr_segs
ble- 7,.L496 #
.LBB1516:
.LBB1517:
.file 21 "./include/linux/slab.h"
.loc 21 495 0
lis 4,0x140 # tmp175,
slwi 3,27,3 #, nr_segs,
ori 4,4,192 #,, tmp175,
bl __kmalloc #
.LBE1517:
.LBE1516:
.loc 1 799 0
li 0,-12 # ret,
.loc 1 798 0
mr. 28,3 # iov,
beq- 0,.L495 #
.L496:
.loc 1 803 0
slwi 27,27,3 # n, nr_segs,
.LBB1518:
.LBB1519:
.loc 19 153 0
mr 3,28 #, iov
mr 4,30 #, uvector
mr 5,27 #, n
bl _copy_from_user #
.LBE1519:
.LBE1518:
.loc 1 804 0
li 0,-14 # ret,
.loc 1 803 0
cmpwi 7,3,0 #, tmp156,
bne- 7,.L495 #
.LBB1520:
.loc 1 833 0
addi 27,27,-8 # tmp172, n,
.loc 1 828 0
cmpwi 6,31,0 #, tmp168, type
.loc 1 833 0
srwi 27,27,3 # tmp173, tmp172,
lis 6,0x7fff # tmp174,
addi 27,27,1 #, tmp173,
.loc 1 829 0
mr 5,2 # current.121, current
.loc 1 833 0
mtctr 27 # tmp170,
.loc 1 829 0
li 8,0 # ivtmp.528,
li 0,0 # ret,
.loc 1 833 0
ori 6,6,61440 #, tmp169, tmp174,
.L499:
.loc 1 819 0
mr 11,28 # D.40034, iov
lwzux 10,11,8 # MEM[base: iov_4, index: ivtmp.528_176, offset: 0B], buf
.loc 1 820 0
lwz 9,4(11) # MEM[base: D.40034_183, offset: 4B], len
.loc 1 824 0
cmpwi 7,9,0 #, tmp157, len
blt- 7,.L505 #
.loc 1 828 0
blt- 6,.L497 #
.loc 1 829 0
lwz 7,1128(5) # current.121_33->thread.fs.seg, D.36573
cmplw 1,10,7 # D.36573, tmp159, buf
bgt- 1,.L507 #
.loc 1 829 0 is_stmt 0 discriminator 1
beq- 7,.L497 #
.loc 1 829 0 discriminator 4
addi 4,9,-1 # tmp161, len,
subf 10,10,7 # tmp162, buf, D.36573
cmplw 7,4,10 # tmp162, tmp163, tmp161
bgt- 7,.L507 #
.L497:
.loc 1 833 0 is_stmt 1
subf 10,0,6 # len, ret, tmp169
cmpw 7,9,10 # len, tmp165, len
ble- 7,.L498 #
.loc 1 835 0
stw 10,4(11) # MEM[base: D.40034_183, offset: 4B], len
mr 9,10 # len, len
.L498:
.loc 1 837 0
add 0,0,9 # ret, ret, len
addi 8,8,8 # ivtmp.528, ivtmp.528,
.LBE1520:
.loc 1 818 0
bdnz .L499 #
b .L495 #
.L505:
.LBB1521:
.loc 1 825 0
li 0,-22 # ret,
b .L495 #
.L507:
.loc 1 830 0
li 0,-14 # ret,
.L495:
.LBE1521:
.loc 1 842 0
addi 11,1,32 #,,
.loc 1 840 0
stw 28,0(29) # *ret_pointer_53(D), iov
.loc 1 842 0
mr 3,0 #, ret
b _restgpr_27_x #
.LFE2683:
.size rw_copy_check_uvector,.-rw_copy_check_uvector
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: gcc 4.6.3 miscompile on ppc32 (was Re: Regression in kernel 4.12-rc1 for Powerpc 32 - bisected to commit 3448890c32c3)
2017-06-25 20:53 ` gcc 4.6.3 miscompile on ppc32 (was Re: Regression in kernel 4.12-rc1 for Powerpc 32 - bisected to commit 3448890c32c3) Al Viro
@ 2017-06-25 21:44 ` Segher Boessenkool
2017-06-25 22:21 ` Al Viro
0 siblings, 1 reply; 10+ messages in thread
From: Segher Boessenkool @ 2017-06-25 21:44 UTC (permalink / raw)
To: Al Viro; +Cc: Larry Finger, Linus Torvalds, Thorsten Leemhuis, linuxppc-dev,
LKML
On Sun, Jun 25, 2017 at 09:53:24PM +0100, Al Viro wrote:
> Confirmed. It manages to bugger the loop immediately after the (successful)
> copying of iovec array in rw_copy_check_uvector(); both with and without
> INLINE_COPY_FROM_USER it has (just before the call of copy_from_user()) r27
> set to nr_segs * sizeof(struct iovec). The call is made, we check that it
> has succeeded and that's when it hits the fan: without INLINE_COPY_FROM_USER
> we have (interleaved with unrelated insns)
> addi 27,27,-8
> srwi 27,27,3
> addi 27,27,1
> mtctr 27
> Weird, but manages to pass nr_segs to mtctr.
This weirdosity is https://gcc.gnu.org/PR67288 . Those three instructions
are not the same as just srwi 27,27,3 in case r27 is 0; GCC does not
figure out this cannot happen here.
> _With_ INLINE_COPY_FROM_USER we
> get this:
> lis 9,0x2000
> mtctr 9
> In other words, the loop will try to go through 8192 iterations. No idea where
> that number has come from, but it sure as hell is wrong.
8192*65535, even. This is as if r27 was 0 always.
Do you have a short stand-alone testcase? 4.6 is ancient, of course, but
the actual problem may still exist in more recent compilers (if it _is_
a compiler problem; if it's not, you *really* want to know :-) )
Segher
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: gcc 4.6.3 miscompile on ppc32 (was Re: Regression in kernel 4.12-rc1 for Powerpc 32 - bisected to commit 3448890c32c3)
2017-06-25 21:44 ` Segher Boessenkool
@ 2017-06-25 22:21 ` Al Viro
2017-06-26 13:37 ` Michael Ellerman
0 siblings, 1 reply; 10+ messages in thread
From: Al Viro @ 2017-06-25 22:21 UTC (permalink / raw)
To: Segher Boessenkool
Cc: Larry Finger, Linus Torvalds, Thorsten Leemhuis, linuxppc-dev,
LKML
On Sun, Jun 25, 2017 at 04:44:09PM -0500, Segher Boessenkool wrote:
> Do you have a short stand-alone testcase? 4.6 is ancient, of course, but
> the actual problem may still exist in more recent compilers (if it _is_
> a compiler problem; if it's not, you *really* want to know :-) )
Enjoy. At least 6.3 doesn't step into that. Look for mtctr in the resulting
asm...
cat <<'EOF' >a.c
struct iovec
{
void *iov_base;
unsigned iov_len;
};
unsigned long v;
extern void * barf(void *,int,unsigned);
extern unsigned long bar(void *to, const void *from, unsigned long size);
static inline unsigned long __bar(void *to, const void *from, unsigned long n)
{
unsigned long res = n;
if (__builtin_expect(!!(((void)0, (((( unsigned long)(from)) <= v) && ((((n)) == 0) || ((((n)) - 1) <= (v - (( unsigned long)(from)))))))), 1))
res = bar(to, from, n);
if (res)
barf(to + (n - res), 0, res);
return res;
}
int foo(int type, const struct iovec * uvector,
unsigned long nr_segs, unsigned long fast_segs,
struct iovec *iov,
struct iovec **ret_pointer)
{
unsigned long seg;
int ret;
if (nr_segs == 0) {
ret = 0;
goto out;
}
if (nr_segs > 1024) {
ret = -22;
goto out;
}
if (__bar(iov, uvector, nr_segs*sizeof(*uvector))) {
ret = -14;
goto out;
}
ret = 0;
for (seg = 0; seg < nr_segs; seg++) {
void *buf = iov[seg].iov_base;
int len = (int)iov[seg].iov_len;
if (len < 0) {
ret = -22;
goto out;
}
if (type >= 0
&& __builtin_expect(!!(!((void)0, (((( unsigned long)(buf)) <= v) && ((((len)) == 0) || ((((len)) - 1) <= (v - (( unsigned long)(buf)))))))), 0)) {
ret = -14;
goto out;
}
ret += len;
}
out:
*ret_pointer = iov;
return ret;
}
EOF
powerpc-linux-gcc -m32 -fno-strict-aliasing -fno-common -std=gnu89 -fno-PIE -msoft-float -pipe -ffixed-r2 -mmultiple -mno-altivec -mno-vsx -mno-spe -mspe=no -funit-at-a-time -fno-dwarf2-cfi-asm -mno-string -mcpu=powerpc -Wa,-maltivec -mbig-endian -fno-delete-null-pointer-checks -Os -fno-stack-protector -Wno-unused-but-set-variable -fomit-frame-pointer -fno-var-tracking-assignments -femit-struct-debug-baseonly -fno-var-tracking -fno-strict-overflow -fconserve-stack -fverbose-asm -S a.c
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: gcc 4.6.3 miscompile on ppc32 (was Re: Regression in kernel 4.12-rc1 for Powerpc 32 - bisected to commit 3448890c32c3)
2017-06-25 22:21 ` Al Viro
@ 2017-06-26 13:37 ` Michael Ellerman
0 siblings, 0 replies; 10+ messages in thread
From: Michael Ellerman @ 2017-06-26 13:37 UTC (permalink / raw)
To: Al Viro, Segher Boessenkool
Cc: linuxppc-dev, Thorsten Leemhuis, Linus Torvalds, LKML,
Larry Finger
Al Viro <viro@ZenIV.linux.org.uk> writes:
> On Sun, Jun 25, 2017 at 04:44:09PM -0500, Segher Boessenkool wrote:
>
>> Do you have a short stand-alone testcase? 4.6 is ancient, of course, but
>> the actual problem may still exist in more recent compilers (if it _is_
>> a compiler problem; if it's not, you *really* want to know :-) )
>
> Enjoy. At least 6.3 doesn't step into that. Look for mtctr in the resulting
> asm...
>
> cat <<'EOF' >a.c
...
I pointed creduce at that and got the version below, which I'm pretty
sure still exhibits the weird mtctr behaviour.
cheers
# cat input.c
struct {
void *iov_base;
unsigned iov_len;
} * c;
long v;
void *a;
int b;
unsigned bar();
foo(unsigned p1) {
unsigned d, e = p1;
if (p1 == 0)
goto out;
if (p1 > 4)
goto out;
if (__builtin_expect(!!(0, v && a), 1))
e = bar();
if (e)
barf(e);
if (e)
goto out;
d = 0;
for (; d < p1; d++) {
int f = c[d].iov_len;
if (__builtin_expect(c[d].iov_base && f, 0))
b = 4;
}
out:;
}
$ cat output.s
.file "input.c"
# rs6000/powerpc options: -mcpu=powerpc -msdata=data -G 8
# GNU C (GCC) version 4.6.3 (powerpc64-linux)
# compiled by GNU C version 4.3.2, GMP version 4.3.2, MPFR version 2.4.2, MPC version 0.8.2
# ...
# Compiler executable checksum: 4b51a6b899110d06c9e3310ac66ad26c
.section ".text"
.align 2
.globl foo
.type foo, @function
foo:
cmpwi 0,3,0 # tmp169, p1
stwu 1,-16(1) #,,
mflr 0 #,
stw 0,20(1) #,
beq- 0,.L9 #
cmplwi 7,3,4 #, tmp170, p1
bgt- 7,.L9 #
lis 9,v@ha # tmp172,
lwz 0,v@l(9) # v, v
cmpwi 7,0,0 #, tmp174, v
beq- 7,.L3 #
lis 9,a@ha # tmp176,
lwz 0,a@l(9) # a, a
cmpwi 7,0,0 #, tmp178, a
beq- 7,.L3 #
bl bar #
cmpwi 0,3,0 # tmp179, e
beq+ 0,.L4 #
.L3:
bl barf #
b .L9 #
.L4:
lis 8,0x2000 #,
lis 9,c@ha # tmp181,
mtctr 8 # tmp192,
lwz 11,c@l(9) # c, c.3
lis 10,b@ha # tmp190,
li 9,0 # ivtmp.12,
li 0,4 # tmp191,
.L6:
lwzx 7,11,9 # MEM[base: c.3_14, index: ivtmp.12_25, offset: 0B], MEM[base: c.3_14, index: ivtmp.12_25, offset: 0B]
add 8,11,9 # tmp182, c.3, ivtmp.12
lwz 8,4(8) # MEM[base: D.1310_21, offset: 4B], D.1287
cmpwi 7,7,0 #, tmp184, MEM[base: c.3_14, index: ivtmp.12_25, offset: 0B]
beq+ 7,.L5 #
cmpwi 7,8,0 #, tmp185, D.1287
beq+ 7,.L5 #
stw 0,b@l(10) # b, tmp191
.L5:
addi 9,9,8 # ivtmp.12, ivtmp.12,
bdnz .L6 #
.L2:
.L9:
lwz 0,20(1) #,
addi 1,1,16 #,,
mtlr 0 #,
blr #
.size foo,.-foo
.globl b
.globl a
.globl v
.globl c
.section .sbss,"aw",@nobits
.align 2
.type b, @object
.size b, 4
b:
.zero 4
.type a, @object
.size a, 4
a:
.zero 4
.type v, @object
.size v, 4
v:
.zero 4
.type c, @object
.size c, 4
c:
.zero 4
.ident "GCC: (GNU) 4.6.3"
.section .note.GNU-stack,"",@progbits
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Regression in kernel 4.12-rc1 for Powerpc 32 - bisected to commit 3448890c32c3
2017-06-24 17:29 ` Larry Finger
2017-06-25 9:53 ` Al Viro
@ 2017-06-26 13:40 ` Michael Ellerman
1 sibling, 0 replies; 10+ messages in thread
From: Michael Ellerman @ 2017-06-26 13:40 UTC (permalink / raw)
To: Larry Finger, Al Viro; +Cc: Thorsten Leemhuis, linuxppc-dev, LKML
Larry Finger <Larry.Finger@lwfinger.net> writes:
> On 06/23/2017 03:29 PM, Al Viro wrote:
>> On Fri, Jun 23, 2017 at 01:49:16PM -0500, Larry Finger wrote:
>>
>>>> BTW, could you try to check what happens if you kill the
>>>> if (__builtin_constant_p(n) && (n <= 8))
>>>> bits in raw_copy_{to,from}_user()? The usefulness of those (in __copy_from_user()
>>>> originally) had always been dubious and the things are simpler without them.
>>>> If _that_ turns out to cure breakage, I would be very surprised, though.
>>>>
>>> Sorry I was gone so long. Installing jessie on this box resulted in a crash
>>> on boot. Lubuntu 14.04 yielded a desktop with a functioning cursor, but
>>> nothing else. Finally, Ubuntu 12.04 resulted in a working system. I hate
>>> Unity, but I guess I'm stuck for now.
>>
>> Ho-hum... Jessie is 3.16, so whatever is crashing there, it's something
>> different... Ubuntu 12.04 is what, 3.2?
>>
>>> I know how easy it is to screw up a long bisection by booting the wrong
>>> kernel. To help that problem and to work around the yaconf/yboot nonsense on
>>> the MAC, my /etc/yaconf has always had generic kernel stanzas with only
>>> default, old, and original kernels mentioned. From there I use a local
>>> script to finish a kernel installation by moving the default links to the
>>> old ones and creating the new default links pointing to the current kernel.
>>> With those long-tested scripts, I'm sure that I am booting the one I want.
>>>
>>> With the new installation, kernel 4.12-rc6 failed, as did 3448890c with the
>>> backported 46f401c4 added.
>>>
>>> Replacing "if (__builtin_constant_p(n) && (n <= 8))" with "if (0)" had no effect.
>>
>> OK, that simplifies things a bit. Just to make sure we are on the same page:
>>
>> * f2ed8bebee69 + cherry-pick of 46f401c4 boots (Ubuntu 12.04 userland)
>> * 3448890c32c3 + cherry-pick of 46f401c4 fails (Ubuntu 12.04 userland), ditto
>> with removal of constant-size bits in raw_copy_..._user(). Failure appears
>> to be on udev getting EFAULT on some syscalls.
>> * straight Ubuntu 12.04 works
>> * jessie crashes on boot.
>
> I made a break through. If I turn off inline copy to/from users for 32-bit ppc
> with the following patch, then the system boots:
>
> diff --git a/arch/powerpc/include/asm/uaccess.h b/arch/powerpc/include/asm/uaccess.h
> index 5c0d8a8cdae5..1e6a8723f497 100644
> --- a/arch/powerpc/include/asm/uaccess.h
> +++ b/arch/powerpc/include/asm/uaccess.h
> @@ -267,12 +267,7 @@ do {
> \
> extern unsigned long __copy_tofrom_user(void __user *to,
> const void __user *from, unsigned long size);
>
> -#ifndef __powerpc64__
> -
> -#define INLINE_COPY_FROM_USER
> -#define INLINE_COPY_TO_USE
> -
> -#else /* __powerpc64__ */
> +#ifdef __powerpc64__
>
> static inline unsigned long
> raw_copy_in_user(void __user *to, const void __user *from, unsigned long n)
Thanks for debugging this.
I just sent a fix based on the above. Let me know if it doesn't work for
you.
cheers
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2017-06-26 13:40 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <69187aa4-611f-b08a-8d14-b8fa47b4c464@lwfinger.net>
[not found] ` <1588557c-2706-0c0e-3387-4ae65d0b5790@lwfinger.net>
[not found] ` <20170621212257.GN10672@ZenIV.linux.org.uk>
[not found] ` <5f4b9fa4-262a-31b1-32ba-a2f6e789b3d6@lwfinger.net>
[not found] ` <20170621213415.GO10672@ZenIV.linux.org.uk>
[not found] ` <655d304e-e455-6e0c-56e1-f127653ea13c@lwfinger.net>
[not found] ` <20170622141203.GP10672@ZenIV.linux.org.uk>
[not found] ` <7bbd4c87-e8ff-5f83-8c4c-e205872083bf@lwfinger.net>
[not found] ` <20170622192515.GQ10672@ZenIV.linux.org.uk>
[not found] ` <2346c306-8e26-94cb-3c63-b866a7f4625d@lwfinger.net>
2017-06-23 20:29 ` Regression in kernel 4.12-rc1 for Powerpc 32 - bisected to commit 3448890c32c3 Al Viro
2017-06-24 0:04 ` Larry Finger
2017-06-24 17:29 ` Larry Finger
2017-06-25 9:53 ` Al Viro
2017-06-25 11:14 ` Al Viro
2017-06-25 20:53 ` gcc 4.6.3 miscompile on ppc32 (was Re: Regression in kernel 4.12-rc1 for Powerpc 32 - bisected to commit 3448890c32c3) Al Viro
2017-06-25 21:44 ` Segher Boessenkool
2017-06-25 22:21 ` Al Viro
2017-06-26 13:37 ` Michael Ellerman
2017-06-26 13:40 ` Regression in kernel 4.12-rc1 for Powerpc 32 - bisected to commit 3448890c32c3 Michael Ellerman
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).