Bug#959472: initramfs-tools (0.137): E: /usr/share/initramfs-tools/hooks/plymouth failed

2020-05-02 Thread John David Anglin
Package: initramfs-tools
Version: 0.137
Severity: normal

Dear Maintainer,

update-initramfs fails:

Processing triggers for initramfs-tools (0.137) ...
update-initramfs: Generating /boot/initrd.img-5.2.17+
E: /usr/share/initramfs-tools/hooks/plymouth failed with return 1.
update-initramfs: failed for /boot/initrd.img-5.2.17+ with 1.
dpkg: error processing package initramfs-tools (--configure):
 installed initramfs-tools package post-installation script subprocess returned 
error exit status 1
Errors were encountered while processing:
 initramfs-tools
E: Sub-process /usr/bin/dpkg returned an error code (1)

Version 0.136 was okay.

Regards,
Dave Anglin

-- Package-specific info:
-- initramfs sizes
-rw-r--r-- 1 root root 12M Apr 11  2015 /boot/initrd.img-3.12.40+
-rw-r--r-- 1 root root 11M Sep 27  2016 /boot/initrd.img-3.18.42+
-rw-r--r-- 1 root root 20M Apr 16 20:38 /boot/initrd.img-4.14.176+
-rw-r--r-- 1 root root 20M Apr 24 21:57 /boot/initrd.img-4.14.177+
-rw-r--r-- 1 root root 11M Aug 21  2016 /boot/initrd.img-4.4.19+
-rw-r--r-- 1 root root 12M Sep 22  2017 /boot/initrd.img-4.9.51+
-rw-r--r-- 1 root root 37M Aug 21  2019 /boot/initrd.img-5.2.0-2-parisc64
-rw-r--r-- 1 root root 20M Apr 24 19:43 /boot/initrd.img-5.2.17+
-rw-r--r-- 1 root root 20M Sep 17  2019 /boot/initrd.img-5.2.8+
-- /proc/cmdline
root=LABEL=ROOT2 console=ttyS0 HOME=/ rootfstype=xfs clocksource=jiffies 
TERM=xterm palo_kernel=2/vmlinuz

-- /proc/filesystems
cramfs
xfs
ext2
ext3
ext4

-- lsmod
Module  Size  Used by
binfmt_misc13075  1
ext4  693225  3
ext2  113644  1
crc16   1655  1 ext4
jbd2  122319  1 ext4
mbcache 9772  2 ext4,ext2
sg 53216  0
ipmi_watchdog  25830  0
ipmi_si72878  1
ipmi_poweroff  12981  0
ipmi_devintf   14622  0
ipmi_msghandler60860  4 ipmi_devintf,ipmi_si,ipmi_watchdog,ipmi_poweroff
nfsd  166379  11
ip_tables  26100  0
x_tables   35419  1 ip_tables
ipv6  587774  146
autofs446898  2
xfs  1118276  2
libcrc32c   1618  1 xfs
crc32c_generic  3086  7
raid10 80659  0
raid1  59399  0
raid0  13504  0
multipath  11251  0
linear  6392  0
md_mod222868  5 raid1,raid10,raid0,linear,multipath
ses12759  0
enclosure  13195  1 ses
scsi_transport_sas 46247  1 ses
sd_mod 59912  10
sr_mod 24407  0
cdrom  44396  1 sr_mod
uas24743  0
usb_storage76116  2 uas
ata_generic 5378  0
ohci_pci5280  0
tg3   257464  0
pata_cmd64x10355  0
ptp20391  1 tg3
ohci_hcd   43731  1 ohci_pci
ehci_pci5759  0
ehci_hcd   62336  1 ehci_pci
sym53c8xx 111720  6
pps_core   13769  1 ptp
libata282335  2 pata_cmd64x,ata_generic
scsi_transport_spi 38311  1 sym53c8xx
usbcore   270368  6 
ohci_hcd,ehci_pci,usb_storage,ehci_hcd,ohci_pci,uas
scsi_mod  247013  10 
ses,scsi_transport_sas,sd_mod,scsi_transport_spi,usb_storage,uas,sym53c8xx,libata,sg,sr_mod
usb_common  3118  1 usbcore

-- /etc/initramfs-tools/modules

-- /etc/kernel-img.conf
# Kernel image management overrides
# See kernel-img.conf(5) for details
do_symlinks = yes
relative_links = yes
do_bootloader = no
do_bootfloppy = no
do_initrd = yes
link_in_boot = yes

-- /etc/initramfs-tools/initramfs.conf
MODULES=most
BUSYBOX=auto
KEYMAP=n
COMPRESS=gzip
DEVICE=
NFSROOT=auto
RUNSIZE=10%

-- /etc/initramfs-tools/update-initramfs.conf
update_initramfs=yes
backup_initramfs=no

-- /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid10] 
unused devices: 

-- mkinitramfs hooks
/etc/initramfs-tools/hooks/:

/usr/share/initramfs-tools/hooks:
dmsetup
fsck
fuse
keymap
klibc-utils
kmod
mdadm
ntfs_3g
plymouth
resume
thermal
udev
xfs
zz-busybox


-- System Information:
Debian Release: bullseye/sid
  APT prefers buildd-unstable
  APT policy: (500, 'buildd-unstable'), (500, 'unstable')
Architecture: hppa (parisc64)

Kernel: Linux 4.14.177+ (SMP w/4 CPU cores)
Locale: LANG=C, LC_CTYPE=C.UTF-8 (charmap=UTF-8), LANGUAGE=C (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages initramfs-tools depends on:
ii  initramfs-tools-core  0.137
ii  linux-base4.6

initramfs-tools recommends no packages.

Versions of packages initramfs-tools suggests:
ii  bash-completion  1:2.10-1

-- no debconf information



Bug#718270: linux: FTBFS on hppa: module mbcache.ko is in more than one package

2013-07-29 Thread John David Anglin
Source: linux
Version: 3.10.3-1
Severity: normal

Build ends here with error:

install -m 644 
debian/linux-image-3.10-1-parisc/lib/modules/3.10-1-parisc/modules.builtin 
debian/linux-image-3.10-1-parisc/lib/modules/3.10-1-parisc/modules.order 
debian/kernel-image-3.10-1-parisc-di/lib/modules/3.10-1-parisc/
install -D -m 644 
debian/linux-image-3.10-1-parisc/boot/System.map-3.10-1-parisc 
debian/kernel-image-3.10-1-parisc-di/boot/System.map-3.10-1-parisc
kernel-wedge copy-modules 3.10-1 parisc 3.10-1-parisc
kernel-wedge find-dups 3.10-1-parisc
some modules are in more than one package
debian/ext4-modules-3.10-1-parisc-di 
lib/modules/3.10-1-parisc/kernel/fs/mbcache.ko
debian/ext3-modules-3.10-1-parisc-di 
lib/modules/3.10-1-parisc/kernel/fs/mbcache.ko
command exited with status 1
make[2]: *** [install-udeb_hppa] Error 2
make[2]: Leaving directory `/mnt/debian/linux/linux-3.10.3'
make[1]: *** [binary-arch_hppa] Error 2
make[1]: Leaving directory `/mnt/debian/linux/linux-3.10.3'
make: *** [binary-arch] Error 2
dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2
Build command 'cd linux-3.10.3  dpkg-buildpackage -b -uc' failed.
Fetched 76.5 MB in 41s (1,838 kB/s)


-- System Information:
Debian Release: 7.0
  APT prefers unreleased
  APT policy: (500, 'unreleased'), (500, 'unstable')
Architecture: hppa (parisc64)

Kernel: Linux 3.11.0-rc2+ (SMP w/4 CPU cores)
Locale: LANG=en_CA.UTF-8, LC_CTYPE=en_CA.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash


-- 
To UNSUBSCRIBE, email to debian-kernel-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/blu0-smtp436d0bf5e4cbe26f7d540d97...@phx.gbl



Bug#718270: linux: FTBFS on hppa: module mbcache.ko is in more than one package

2013-07-29 Thread John David Anglin

On 29-Jul-13, at 11:07 AM, Ben Hutchings wrote:


Does this patch (applied with -p0) fix it?

--- debian/installer/hppa/modules/hppa/core-modules (revision 0)
+++ debian/installer/hppa/modules/hppa/core-modules (working copy)
@@ -0,0 +1 @@
+#include core-modules
--- END ---



With the patch, the build completes successfully.

On a different subject, could the build version of gcc be bumped from  
4.4 to 4.7 or 4.8?


Thanks for the quick response,
Dave
--
John David Anglin   dave.ang...@bell.net


--
To UNSUBSCRIBE, email to debian-kernel-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/blu0-smtp26811ad399150e8c0c1fd897...@phx.gbl



Bug#622997: Debian bug 622997

2011-04-17 Thread John David Anglin
 On Sat, 2011-04-16 at 19:35 -0400, John David Anglin wrote: 
  On Sat, 16 Apr 2011, James Bottomley wrote:
  
   Strike that one ... I enabled USB in my 2.6.39-rc3 build and it inserts
   the OHCI module and discovers the ports just fine.
  
  Boot 2.6.39-rc3 fails for me with attached config.
 
 I can't quite build it.  With gcc version 4.2.4 (Debian 4.2.4-6) I'm
 getting an ICE:
 
 net/wireless/reg.c: In function 'freq_reg_info_regd':
 net/wireless/reg.c:645: internal compiler error: in expand_expr_real_1,
 at expr.c:8744
 Please submit a full bug report,
 with preprocessed source if appropriate.
 See URL:http://gcc.gnu.org/bugs.html for instructions.
 For Debian GNU/Linux specific bug reporting instructions,
 see URL:file:///usr/share/doc/gcc-4.2/README.Bugs.
 make[2]: *** [net/wireless/reg.o] Error 1

This is probably fixed as it doesn't occur with 
gcc version 4.5.3 20110101 (prerelease) [gcc-4_5-branch revision 168387] (GCC) .
GCC 4.2 and 4.3 are no longer maintained and there won't be any further
releases from these branches.

Without looking at the above, it's hard to tell whether the bug is a
middle-end or backend bug.  Many middle-end bugs are fixed in more recent
GCC versions.  Although newer versions may bring their own problems,
we can get help in fixing problems particularly if they are regressions. 

The asm delay slot bug affected all GCC versions.  I backported the fix to
the 4.3, 4.4 and 4.5 branches.  This is a problem in the kernel because of
the following:

** The __asm__ op below simple prevents gcc/ld from reordering
** instructions across the mb() call.
*/
#define mb()__asm__ __volatile__(:::memory) /* barrier() */

It's just a matter of chance whether a barrier ends up in the delay slot
of a branch in a critical location.

 Plus there's a bug in my kernel code:
 
 drivers/usb/host/xhci-pci.c: In function 'xhci_pci_setup':
 drivers/usb/host/xhci-pci.c:61: error: implicit declaration of function
 'kzalloc
 
 If I correct for these (add missing slab.h include and disable wireless)

I had to add missing slab.h as well.  However, I didn't touch wireless
with 4.5.3.

 and build, the last message I see is
 
 turn off boot console ttyB0
 
 Which indicates it's got a problem with the console configuration (I
 don't see any console registration for the DIVA serial port on ttyS1 in
 the boot log).

Comparing the console output that I recorded for the debian kernel, I
see udev starts much earlier.  It only has the initial message from the
tg3 driver and SCSI subsystem.

Dave
-- 
J. David Anglin  dave.ang...@nrc-cnrc.gc.ca
National Research Council of Canada  (613) 990-0752 (FAX: 952-6602)



-- 
To UNSUBSCRIBE, email to debian-kernel-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20110417151147.326ec4...@hiauly1.hia.nrc.ca



Bug#622997: Debian bug 622997

2011-04-17 Thread John David Anglin
On Sun, 17 Apr 2011, James Bottomley wrote:

  Comparing the console output that I recorded for the debian kernel, I
  see udev starts much earlier.  It only has the initial message from the
  tg3 driver and SCSI subsystem.
 
 It's most likely a driver module that's getting loaded which is turned
 off in the booting configuration ... finding it isn't going to be easy,
 though ...

Yup.  I have reenabled IPV6 and USB and my system still boots.  There
are some nfs problems with IPV6 but that's probably a config issue.

Dave
-- 
J. David Anglin  dave.ang...@nrc-cnrc.gc.ca
National Research Council of Canada  (613) 990-0752 (FAX: 952-6602)



-- 
To UNSUBSCRIBE, email to debian-kernel-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20110417170635.ga23...@hiauly1.hia.nrc.ca



Bug#622997: Debian bug 622997

2011-04-17 Thread John David Anglin
On Sun, 17 Apr 2011, James Bottomley wrote:

 On Sun, 2011-04-17 at 10:23 -0500, James Bottomley wrote:
  It's most likely a driver module that's getting loaded which is turned
  off in the booting configuration ... finding it isn't going to be easy,
  though ...
 
 Finally got a build (had to swap out -Os for -O2).

Didn't need this with the gcc 4.5.3 snapshot that I mentioned previously.

 I traced the module loads and successful inits and found it; it's
 pata_cmd64x  ... it loads but never returns from init.  I bet it's
 trying to poke into ISA space which causes the HPMC.
 
 Removing this one module from the system allows it to boot again.

Confirm that removing this module restores boot.

This is excellent detective work.  If I might ask, how did you trace
the module loads and successful inits?

Thanks,
Dave
-- 
J. David Anglin  dave.ang...@nrc-cnrc.gc.ca
National Research Council of Canada  (613) 990-0752 (FAX: 952-6602)



-- 
To UNSUBSCRIBE, email to debian-kernel-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20110418012519.ga25...@hiauly1.hia.nrc.ca



Bug#622997: linux-image-2.6.38-2-parisc64-smp: Boot failure: PCI Errors in lba_pat_out8

2011-04-16 Thread John David Anglin
Package: linux-2.6
Version: 2.6.38-2
Severity: critical
Justification: breaks the whole system

Booting... 
Boot IO Dependent Code (IODC) revision 1


HARD Booted.
palo ipl 1.17 root@c3k Sun Mar  7 16:13:48 MST 2010
Skipping extended partition 6 - beyond reach of IPL

Partition Start(MB) End(MB) Id Type
1   1  31   f0 Palo
2  32 156   83 ext2
5 1576832   83 ext2

PALO(F0) partition contains:
0/vmlinux64 6241289 bytes @ 0x48000

Command line for kernel: 'root=/dev/sda5 console=ttyS1 HOME=/ 
palo_kernel=2/vmlinux'
Selected kernel: /vmlinux from partition 2
Selected ramdisk: /initrd.img from partition 2
ELF64 executable
Entry 0010 first 0010 n 3
Segment 0 load 0010 size 5419008 mediaptr 0x1000
Segment 1 load 006b9ce0 size 507616 mediaptr 0x52cce0
Segment 2 load 00738000 size 323008 mediaptr 0x5a9000
Loading ramdisk 14508363 bytes @ 3f218000...
Branching to kernel entry point 0x0010.  If this is the last
message you see, you may need to switch your console.  This is
a common symptom -- search the FAQ and mailing list at parisc-linux.org

[0.00] Initializing cgroup subsys cpuset
[0.00] Initializing cgroup subsys cpu
[0.00] Linux version 2.6.38-2-parisc64-smp (Debian 2.6.38-2) 
(b...@decadent.org.uk) (gcc version 4.4.5 (GCC) ) #1 SMP Wed Mar 30 08:16:31 
UTC 2011
[0.00] unwind_init: start = 0x4053f000, end = 0x405728a0, entries = 
13194
[0.00] FP[0] enabled: Rev 1 Model 20
[0.00] The 64-bit Kernel has started...
[0.00] bootconsole [ttyB0] enabled
[0.00] Initialized PDC Console for debugging.
[0.00] Determining PDC firmware type: 64 bit PAT.
[0.00] model 8870 0491  0002 3e0505e7352af711 
10f0 0008 00b2 00b2
[0.00] vers  0301
[0.00] CPUID vers 20 rev 4 (0x0284)
[0.00] capabilities 0x35
[0.00] model 9000/800/rp3440  
[0.00] parisc_cache_init: Only equivalent aliasing supported!
[0.00] Memory Ranges:
[0.00]  0) Start 0x End 0x3fff Size   1024 
MB
[0.00]  1) Start 0x0001 End 0x00027fdf Size   6142 
MB
[0.00]  2) Start 0x00404000 End 0x0040 Size   3072 
MB
[0.00] Total Memory: 10238 MB
[0.00] initrd: 7f218000-7ffee14b
[0.00] initrd: reserving 3f218000-3ffee14b (mem_max 27fe0)
[0.00] PERCPU: Embedded 10 pages/cpu @428f5000 s11712 r8192 
d21056 u40960
[0.00] SMP: bootstrap CPU ID is 0
[0.00] Built 3 zonelists in Zone order, mobility grouping on.  Total 
pages: 2585095
[0.00] Kernel command line: root=/dev/sda5 console=ttyS1 HOME=/ 
palo_kernel=2/vmlinux
[0.00] PID hash table entries: 4096 (order: 3, 32768 bytes)
[0.00] Dentry cache hash table entries: 2097152 (order: 12, 16777216 
bytes)
[0.00] Inode-cache hash table entries: 1048576 (order: 11, 8388608 
bytes)
[0.00] Memory: 10273764k/10483712k available (3590k kernel code, 
209948k reserved, 1649k data, 316k init)
[0.00] virtual kernel memory layout:
[0.00] vmalloc : 0x8000 - 0x3f00   (1007 MB)
[0.00] memory  : 0x4000 - 0x00414000   (266240 
MB)
[0.00]   .init : 0x40738000 - 0x40787000   ( 316 kB)
[0.00]   .data : 0x40481b60 - 0x4061e020   (1649 kB)
[0.00]   .text : 0x4010 - 0x40481b60   (3590 kB)
[0.00] SLUB: Genslabs=11, HWalign=64, Order=0-3, MinObjects=0, CPUs=8, 
Nodes=8
[0.00] Hierarchical RCU implementation.
[0.00]  CONFIG_RCU_FANOUT set to non-default value of 32
[0.00]  RCU-based detection of stalled CPUs is disabled.
[0.00] NR_IRQS:128
[0.00] Console: colour dummy device 160x64
[0.00] Calibrating delay loop... 1597.44 BogoMIPS (lpj=3194880)
[0.096000] pid_max: default: 32768 minimum: 301
[0.096000] Security Framework initialized
[0.096000] SELinux:  Disabled at boot.
[0.096000] Mount-cache hash table entries: 256
[0.104000] Initializing cgroup subsys ns
[0.104000] ns_cgroup deprecated: consider using the 'clone_children' flag 
without the ns_cgroup.
[0.108000] Initializing cgroup subsys cpuacct
[0.108000] Initializing cgroup subsys devices
[0.116000] Initializing cgroup subsys freezer
[0.116000] Initializing cgroup subsys net_cls
[0.124000] Initializing cgroup subsys blkio
[0.124000] Brought up 1 CPUs
[0.124000] devtmpfs: initialized
[0.132000] print_constraints: dummy: 
[0.132000] NET: Registered protocol family 16
[0.14] EISA bus registered
[0.14] Searching for devices...
[0.26] Found devices:
[0.26] 1. Storm Peak Slow at 0xfe78 [128] { 0, 0x0, 0x887, 
0x4 }
[0.264000] 2. Storm Peak Slow at 

Bug#622997: Debian bug 622997

2011-04-16 Thread John David Anglin
I posted this debian bug report because the most recent debian
SMP kernel build fails to boot on my rp3440:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=622997

I don't think debian kernels have worked since lenny.

Dave
-- 
J. David Anglin  dave.ang...@nrc-cnrc.gc.ca
National Research Council of Canada  (613) 990-0752 (FAX: 952-6602)



-- 
To UNSUBSCRIBE, email to debian-kernel-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20110416180754.ga18...@hiauly1.hia.nrc.ca



Bug#622997: Debian bug 622997

2011-04-16 Thread John David Anglin
 On Sat, 2011-04-16 at 14:07 -0400, John David Anglin wrote:
  I posted this debian bug report because the most recent debian
  SMP kernel build fails to boot on my rp3440:
  http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=622997
  
  I don't think debian kernels have worked since lenny.
 
 Hmm, well upstream ones have: so it's likely a patch debian has but
 upstream doesn't, or it could be a toolchain issue ... I didn't think
 gcc-4.4.5 worked properly on 64 bit without a few patches?

Yes, but debian tends to build almost everything.  For some reason,
I've turned off ipv6.  Unlike many kernel bugs, this one is completely
reproducible.

I would say gcc-4.4.6 or a snapshot latter than 2010-12-22 is needed
for kernel builds.  asm in delay slot patch is key patch.  As this was
discussed on list, I'm a bit surprised that this wasn't picked up if
that's the problem.

I'm doing a build based on debian's config with my toolchain to see
if it has the same problem.

There may be a toolchain issue wrt CONFIG_FRAME_POINTER (frame pointer
optimization).

Dave
-- 
J. David Anglin  dave.ang...@nrc-cnrc.gc.ca
National Research Council of Canada  (613) 990-0752 (FAX: 952-6602)



-- 
To UNSUBSCRIBE, email to debian-kernel-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20110416192920.1e15b4...@hiauly1.hia.nrc.ca



Bug#622997: Debian bug 622997

2011-04-16 Thread John David Anglin
On Sat, 16 Apr 2011, Ben Hutchings wrote:

 If you can identify the compiler patches required, I can ask the Debian
 gcc maintainers to apply them.

gcc-4.4.6 is released and contains all parisc patches known to be relevant.

Dave
-- 
J. David Anglin  dave.ang...@nrc-cnrc.gc.ca
National Research Council of Canada  (613) 990-0752 (FAX: 952-6602)



-- 
To UNSUBSCRIBE, email to debian-kernel-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20110417025055.ga20...@hiauly1.hia.nrc.ca



Bug#561203: threads and fork on machine with VIPT-WB cache

2010-06-02 Thread John David Anglin
On Wed, 02 Jun 2010, Modestas Vainius wrote:

 Hello,
 
 this bug [1] is back to the very common department with eglibc 2.11 (libc6-
 dev_2.11.1-1) builds. Majority of KDE applications are failing to build on 
 hppa again. Is there really nothing what could be done to fix it?

I will just say it is very tricky.  I think a fix is possible (arm and mips
had similar cache problems) but the victim replacement present in PA8800/PA8900
caches makes the problem especially difficult  for hardware using these
processors.

I have spent the last few months testing various alternatives and have
now done hundreds of kernel builds.  I did post some experimental patches
that fix the problem on UP kernels.  However, the problem is not resolved
for SMP kernels.

The minifail test is a good one to demonstrate the problem.  Indeed,
a very similar test was given in the thread below:
http://readlist.com/lists/vger.kernel.org/linux-kernel/54/270861.html

This thread also discusses the PA8800 problem:
http://readlist.com/lists/vger.kernel.org/linux-kernel/54/271417.html

I currently surmise that we have a problem with the cache victim
replacement, although the cause isn't clear.  I did find recently
that the cache prefetch in copy_user_page_asm extends to the line
beyond the end of the page, but fixing this doesn't resolve the problem.

I am still experimenting with using equivalent aliasing.  It does
help to flush in ptep_set_wrprotect.

Dave
-- 
J. David Anglin  dave.ang...@nrc-cnrc.gc.ca
National Research Council of Canada  (613) 990-0752 (FAX: 952-6602)



-- 
To UNSUBSCRIBE, email to debian-kernel-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20100602171600.ga5...@hiauly1.hia.nrc.ca



Bug#561203: threads and fork on machine with VIPT-WB cache

2010-04-08 Thread John David Anglin
 On Thu, 08 Apr 2010, Helge Deller wrote:

  I tested your patch today on one of my machines with plain kernel 2.6.33 
  (32bit, SMP, B2000 I think).
  Sadly I still did see the minifail bug.
  
  Are you sure, that the patch fixed this bug for you?
 
 Seemed to, but I have a bunch of other changes installed.  Possibly,
 the change to cacheflush.h is important.  It affects all PA8000.

I also think the change suggested by James

+   if (pte_dirty(old_pte))

is important for SMP.  With the patch set that I sent, my rp3440 and
gsyprf11 seem reasonably stable running 2.6.33.2 SMP.  I doubt all
problems are solved but things are a lot better than before.

Dave
-- 
J. David Anglin  dave.ang...@nrc-cnrc.gc.ca
National Research Council of Canada  (613) 990-0752 (FAX: 952-6602)



-- 
To UNSUBSCRIBE, email to debian-kernel-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20100408224446.96f294...@hiauly1.hia.nrc.ca



Bug#561203: threads and fork on machine with VIPT-WB cache

2010-04-04 Thread John David Anglin
 Thanks a lot for the discussion.
 
 James Bottomley wrote:
  So your theory is that the data the kernel sees doing the page copy can
  be stale because of dirty cache lines in userspace (which is certainly
  possible in the ordinary way)?
 
 Yes.
 
  By design that shouldn't happen: the idea behind COW breaking is
  that before it breaks, the page is read only ... this means that
  processes can have clean cache copies of it, but never dirty cache
  copies (because writes are forbidden).
 
 That must be design, I agree.
 
 To keep this condition (no dirty cache for COW page), we need to flush
 cache before ptep_set_wrprotect.  That's my point.
 
 Please look at the code path:
(kernel/fork.c)
do_fork - copy_process - copy_mm - dup_mm - dup_mmap -
(mm/memory.c)
copy_page_range - copy_p*d_range - copy_one_pte - ptep_set_wrprotect
 
 The function flush_cache_dup_mm is called from dup_mmap, that's enough
 for a case of a process with single thread.
 I think that:
 We need to flush cache before ptep_set_wrprotect for a process with
 multiple threads.  Other threads may change memory after a thread
 invokes do_fork and before calling ptep_set_wrprotect.  Specifically,
 a process may sleep at pte_alloc function to get a page.

I agree.  It is interesting that in the case of the Debian bug that
a thread of the parent process causes the COW break and thereby corrupts
its own memory.  As far as I can tell, the fork'd child never writes
to the memory that causes the fault.

My testing indicates that your suggested change fixes the Debian
bug.  I've attached below my latest test version.  This seems to fix
the bug on both SMP and UP kernels.

However, it doesn't fix all page/cache related issues on parisc
SMP kernels that I commonly see.

My first inclination after even before reading your analysis was
to assume that copy_user_page was broken (i.e, that even if a
processor cache was dirty when the COW page was write protected,
it should be possible to do the flush before the page is copied).
However, this didn't seem to work...  Possibly, there are issues
with aliased addresses.

I note that sparc flushes the entire cache and purges the entire
tlb in kmap_atomic/kunmap_atomic for highmem.  Although the breakage
that I see is not limited to PA8800/PA8900, I'm not convinced
that we maintain coherency that is required for these processors
in copy_user_page when we have multiple threads.

As a side note, kmap_atomic/kunmap_atomic seem to lack calls to
pagefault_disable()/pagefault_enable() on PA8800.

Dave
-- 
J. David Anglin  dave.ang...@nrc-cnrc.gc.ca
National Research Council of Canada  (613) 990-0752 (FAX: 952-6602)

diff --git a/arch/parisc/include/asm/pgtable.h 
b/arch/parisc/include/asm/pgtable.h
index a27d2e2..b140d5c 100644
--- a/arch/parisc/include/asm/pgtable.h
+++ b/arch/parisc/include/asm/pgtable.h
@@ -14,6 +14,7 @@
 #include linux/bitops.h
 #include asm/processor.h
 #include asm/cache.h
+extern void flush_cache_page(struct vm_area_struct *vma, unsigned long vmaddr, 
unsigned long pfn);
 
 /*
  * kern_addr_valid(ADDR) tests if ADDR is pointing to valid kernel
@@ -456,17 +457,22 @@ static inline pte_t ptep_get_and_clear(struct mm_struct 
*mm, unsigned long addr,
return old_pte;
 }
 
-static inline void ptep_set_wrprotect(struct mm_struct *mm, unsigned long 
addr, pte_t *ptep)
+static inline void ptep_set_wrprotect(struct vm_area_struct *vma, struct 
mm_struct *mm, unsigned long addr, pte_t *ptep)
 {
 #ifdef CONFIG_SMP
unsigned long new, old;
+#endif
+   pte_t old_pte = *ptep;
+
+   if (atomic_read(mm-mm_users)  1)
+   flush_cache_page(vma, addr, pte_pfn(old_pte));
 
+#ifdef CONFIG_SMP
do {
old = pte_val(*ptep);
new = pte_val(pte_wrprotect(__pte (old)));
} while (cmpxchg((unsigned long *) ptep, old, new) != old);
 #else
-   pte_t old_pte = *ptep;
set_pte_at(mm, addr, ptep, pte_wrprotect(old_pte));
 #endif
 }
diff --git a/mm/memory.c b/mm/memory.c
index 09e4b1b..21c2916 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -616,7 +616,7 @@ copy_one_pte(struct mm_struct *dst_mm, struct mm_struct 
*src_mm,
 * in the parent and the child
 */
if (is_cow_mapping(vm_flags)) {
-   ptep_set_wrprotect(src_mm, addr, src_pte);
+   ptep_set_wrprotect(vma, src_mm, addr, src_pte);
pte = pte_wrprotect(pte);
}
 



-- 
To UNSUBSCRIBE, email to debian-kernel-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20100405025154.de1d55...@hiauly1.hia.nrc.ca



Bug#561203: threads and fork on machine with VIPT-WB cache

2010-04-04 Thread John David Anglin
   By design that shouldn't happen: the idea behind COW breaking is
   that before it breaks, the page is read only ... this means that
   processes can have clean cache copies of it, but never dirty cache
   copies (because writes are forbidden).
  
  That must be design, I agree.
  
  To keep this condition (no dirty cache for COW page), we need to flush
  cache before ptep_set_wrprotect.  That's my point.

Is it possible that a sleep/reschedule could cause the cache to become
dirty again before it is write protected?

Dave
-- 
J. David Anglin  dave.ang...@nrc-cnrc.gc.ca
National Research Council of Canada  (613) 990-0752 (FAX: 952-6602)



-- 
To UNSUBSCRIBE, email to debian-kernel-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20100405025840.b79a54...@hiauly1.hia.nrc.ca



Bug#539378: [hppa]: fails to load nfs module: Global Offset Table

2009-08-01 Thread John David Anglin
On Fri, 31 Jul 2009, Carlos O'Donell wrote:

  +             if (d = 15)
  +                     stub-insns[0] |= reassemble_14(d);
 
  reassemble_14 is wrong for ldd format 3.  Need format 5 and im5 insertion.
 
 This is using reassemble_14 for ldd format 5, which is correct.

Huh?  Format 5 has a five bit immediate and it's not compatible with
reassemble_14.  The value is actually being stuffed into a format 3 ldd
pattern (i.e., format 3 is being used for displacements 0 and 8).

If format 3 is going to be used for short displacements, then use
reassemble_16a as it is the inverse to the assemble_16a operation
described in the arch.  Using reassemble_14 with ldd is confusing.

As you pointed out, the arch shows using format 5 for short displacements.
It's unclear whether there is a performance or functional difference aside
from the behavior of space selection.  There may be no requirement for
hardware to implement short displacements using format 3.

Dave
-- 
J. David Anglin  dave.ang...@nrc-cnrc.gc.ca
National Research Council of Canada  (613) 990-0752 (FAX: 952-6602)



--
To UNSUBSCRIBE, email to debian-kernel-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#539378: [hppa]: fails to load nfs module: Global Offset Table

2009-08-01 Thread John David Anglin
  case ELF_STUB_GOT:
  -   stub-insns[0] = 0x537b;/* ldd 0(%dp),%dp   */
  +   stub-insns[0] = 0x537b;/* ldd 0(%dp),%dp   */
  stub-insns[1] = 0x53610020;/* ldd 10(%dp),%r1  */
  stub-insns[2] = 0xe820d000;/* bve (%r1)*/
  stub-insns[3] = 0x537b0030;/* ldd 18(%dp),%dp  */
   
  -   stub-insns[0] |= reassemble_14(get_got(me, value, addend)  
  0x3fff);
  +   d = get_got(me, value, addend);
  +   if (d = 15)
  +   stub-insns[0] |= reassemble_14(d);
 
 reassemble_14 is wrong for ldd format 3.  Need format 5 and im5 insertion.

Since I complained about not using format 5 for small displacements,
here's an updated patch for review.  Seems to work:

d...@mx3210:/usr/src/D$ lsmod
Module  Size  Used by
dm_snapshot45680  0 
dm_mirror  27480  0 
dm_region_hash 17408  1 dm_mirror
dm_log 18968  2 dm_mirror,dm_region_hash
dm_mod111200  3 dm_snapshot,dm_mirror,dm_log
ext2   99648  2 
sd_mod 63792  4 
crc_t10dif  2368  1 sd_mod
tg3   196428  0 
sym53c8xx 127568  3 
libphy 39280  1 tg3
scsi_transport_spi 43528  1 sym53c8xx
scsi_mod  261104  3 sd_mod,sym53c8xx,scsi_transport_spi

Dave
-- 
J. David Anglin  dave.ang...@nrc-cnrc.gc.ca
National Research Council of Canada  (613) 990-0752 (FAX: 952-6602)

Signed-off-by: John David Anglin dave.ang...@nrc-cnrc.gc.ca

diff --git a/arch/parisc/kernel/module.c b/arch/parisc/kernel/module.c
index ecd1c50..88989cb 100644
--- a/arch/parisc/kernel/module.c
+++ b/arch/parisc/kernel/module.c
@@ -86,8 +86,12 @@
  * the bottom of the table, which has a maximum signed displacement of
  * 0x3fff; however, since we're only going forward, this becomes
  * 0x1fff, and thus, since each GOT entry is 8 bytes long we can have
- * at most 1023 entries */
-#define MAX_GOTS   1023
+ * at most 1023 entries.
+ * To overcome this 14bit displacement with some kernel modules, we'll
+ * use instead the unusal 16bit displacement method (see reassemble_16a)
+ * which gives us a maximum positive displacement of 0x7fff, and as such 
+ * allows us to allocate up to 4095 GOT entries. */
+#define MAX_GOTS   4095
 
 /* three functions to determine where in the module core
  * or init pieces the location is */
@@ -145,12 +149,40 @@ struct stub_entry {
 /* The reassemble_* functions prepare an immediate value for
insertion into an opcode. pa-risc uses all sorts of weird bitfields
in the instruction to hold the value.  */
+static inline int sign_unext (int x, int len)
+{
+   int len_ones;
+
+   len_ones = (1  len) - 1;
+   return x  len_ones;
+}
+
+static inline int low_sign_unext(int x, int len)
+{
+   int sign, temp;
+
+   sign = (x  (len-1))  1;
+   temp = sign_unext (x, len-1);
+   return (temp  1) | sign;
+}
+
 static inline int reassemble_14(int as14)
 {
return (((as14  0x1fff)  1) |
((as14  0x2000)  13));
 }
 
+static inline int reassemble_16a(int as16)
+{
+   int s, t;
+
+   /* Unusual 16-bit encoding, for wide mode only.  */
+   t = (as16  1)  0x;
+   s = (as16  0x8000);
+   return (t ^ s ^ (s  1)) | (s  15);
+}
+
+
 static inline int reassemble_17(int as17)
 {
return (((as17  0x1)  16) |
@@ -409,6 +441,7 @@ static Elf_Addr get_stub(struct module *me, unsigned long 
value, long addend,
enum elf_stub_type stub_type, Elf_Addr loc0, unsigned int targetsec)
 {
struct stub_entry *stub;
+   int d;
 
/* initialize stub_offset to point in front of the section */
if (!me-arch.section[targetsec].stub_offset) {
@@ -462,12 +495,19 @@ static Elf_Addr get_stub(struct module *me, unsigned long 
value, long addend,
  */
switch (stub_type) {
case ELF_STUB_GOT:
-   stub-insns[0] = 0x537b;/* ldd 0(%dp),%dp   */
+   d = get_got(me, value, addend);
+   if (d = 15) {
+   /* Format 5 */
+   stub-insns[0] = 0x0f6010db; /* ldd 0(%dp),%dp  */
+   stub-insns[0] |= low_sign_unext(d, 5)  16;
+   } else {
+   /* Format 3 */
+   stub-insns[0] = 0x537b; /* ldd 0(%dp),%dp  */
+   stub-insns[0] |= reassemble_16a(d);
+   }
stub-insns[1] = 0x53610020;/* ldd 10(%dp),%r1  */
stub-insns[2] = 0xe820d000;/* bve (%r1)*/
stub-insns[3] = 0x537b0030;/* ldd 18(%dp),%dp  */
-
-   stub-insns[0] |= reassemble_14(get_got(me, value, addend)  
0x3fff);
break;
case ELF_STUB_MILLI:
stub-insns[0] = 0x2020

Bug#539378: [hppa]: fails to load nfs module: Global Offset Table

2009-07-31 Thread John David Anglin
 On Fri, Jul 31, 2009 at 5:17 AM, Frans Popelen...@planet.nl wrote:
  Affects both stable and unstable!
 
  kernel: Linux version 2.6.26-2-parisc64-smp [...]
  kernel: nfs: Global Offset Table overflow (used 1075, allowed 1023)
 
  kernel: Linux version 2.6.30-1-parisc64 [...]
  kernel: nfs: Global Offset Table overflow (used 1164, allowed 1023)
 
  The error comes from arch/parisc/kernel/module.c.
  Looks like it is a known issue:
  http://lists.parisc-linux.org/pipermail/parisc-linux/2006-October/054826.html

I've seen the same problem.  Sent a message to the parisc-linux list
about this recently.

 Only 32-bit targets have the 14-bit signed immediate offset (0x3fff),
 which becomes a 13-bit limit when loading positive offsets e.g.
 +0x1fff or 1023 GOT slots.

Can't we offset the table and double the number of entries?

Dave
-- 
J. David Anglin  dave.ang...@nrc-cnrc.gc.ca
National Research Council of Canada  (613) 990-0752 (FAX: 952-6602)



-- 
To UNSUBSCRIBE, email to debian-kernel-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#539378: [hppa]: fails to load nfs module: Global Offset Table

2009-07-31 Thread John David Anglin
   case ELF_STUB_GOT:
 - stub-insns[0] = 0x537b;/* ldd 0(%dp),%dp   */
 + stub-insns[0] = 0x537b;/* ldd 0(%dp),%dp   */
   stub-insns[1] = 0x53610020;/* ldd 10(%dp),%r1  */
   stub-insns[2] = 0xe820d000;/* bve (%r1)*/
   stub-insns[3] = 0x537b0030;/* ldd 18(%dp),%dp  */
  
 - stub-insns[0] |= reassemble_14(get_got(me, value, addend)  
 0x3fff);
 + d = get_got(me, value, addend);
 + if (d = 15)
 + stub-insns[0] |= reassemble_14(d);

reassemble_14 is wrong for ldd format 3.  Need format 5 and im5 insertion.

Dave
-- 
J. David Anglin  dave.ang...@nrc-cnrc.gc.ca
National Research Council of Canada  (613) 990-0752 (FAX: 952-6602)



-- 
To UNSUBSCRIBE, email to debian-kernel-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#539378: [hppa]: fails to load nfs module: Global Offset Table

2009-07-31 Thread John David Anglin
  case ELF_STUB_GOT:
  -   stub-insns[0] = 0x537b;/* ldd 0(%dp),%dp   */
  +   stub-insns[0] = 0x537b;/* ldd 0(%dp),%dp   */
  stub-insns[1] = 0x53610020;/* ldd 10(%dp),%r1  */
  stub-insns[2] = 0xe820d000;/* bve (%r1)*/
  stub-insns[3] = 0x537b0030;/* ldd 18(%dp),%dp  */
   
  -   stub-insns[0] |= reassemble_14(get_got(me, value, addend)  
  0x3fff);
  +   d = get_got(me, value, addend);
  +   if (d = 15)
  +   stub-insns[0] |= reassemble_14(d);
 
 reassemble_14 is wrong for ldd format 3.  Need format 5 and im5 insertion.

The format 5 version of ldd 0(%dp),%dp is 0x0f6010db.

Dave
-- 
J. David Anglin  dave.ang...@nrc-cnrc.gc.ca
National Research Council of Canada  (613) 990-0752 (FAX: 952-6602)



-- 
To UNSUBSCRIBE, email to debian-kernel-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Re: Debian parisc config for 2.6.26 broke the real time clock

2008-09-09 Thread John David Anglin
 Um, because the architecture doesn't have an i2c bus.

Don't know about rtc but some PA-RISC models definitely have an i2c bus.
I see this message on a A500-75 model:

 The support bus which connects the system processors, the Guardian Service
 Processor (GSP) and the Power Monitor or Platform Monitor may have become
 hung.  (The support bus can be tested by issuing the GSP command XD, and
 selecting the I2C access test).

Dave
-- 
J. David Anglin  [EMAIL PROTECTED]
National Research Council of Canada  (613) 990-0752 (FAX: 952-6602)


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Debian parisc config for 2.6.26 broke the real time clock

2008-09-09 Thread John David Anglin
 This I2C bus is not acessible by the operating system (as far as I know).

HP-UX seems to be able to access fan and power status somehow.  It
sends me an email when it thinks the i2c is hung, and once a day,
it sends a message that a fan which the chassis doesn't have (as far
as I can tell) has failed.  Of course, the A500-75 model doesn't
actually exist...  The model that actually shipped was a A500-7X.
As a result, I've never been able to update the firmware.

Dave
-- 
J. David Anglin  [EMAIL PROTECTED]
National Research Council of Canada  (613) 990-0752 (FAX: 952-6602)


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: [parisc-linux] Re: 2.6.14 has been released,

2005-10-28 Thread John David Anglin
 On Fri, Oct 28, 2005 at 05:34:06PM +0900, Horms wrote:
  Also, can someone look into HPPA, or point me at which patch to use?
  http://packages.vergenet.net/testing/linux-2.6-2.6.14/linux-2.6_2.6.14-1-hppa.log.gz
 
 I know I *said* not to use the -pa0 kernel, but it's booted fine for me
 on a K460 and an N4000.   Any other reports?

Not -pa0 but 2.6.14-rc5-pa1 has been up for more than 7 days now on
my c3k.  Nothing since 2.6.8.1-pa11 has been this stable.  However,
gsyprf11 with 64-bit SMP hasn't been as stable (two crashes doing
GCC builds and checks in roughly the same period).

Dave
-- 
J. David Anglin  [EMAIL PROTECTED]
National Research Council of Canada  (613) 990-0752 (FAX: 952-6602)


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]