Bug 224944 - ZFS boot on Raspberry Pi 2 broken between 11.0 and 11.1
Summary: ZFS boot on Raspberry Pi 2 broken between 11.0 and 11.1
Status: New
Alias: None
Product: Base System
Classification: Unclassified
Component: kern (show other bugs)
Version: 11.1-RELEASE
Hardware: arm Any
: --- Affects Only Me
Assignee: freebsd-arm mailing list
URL:
Keywords: regression
Depends on:
Blocks:
 
Reported: 2018-01-06 01:20 UTC by cyril
Modified: 2018-01-28 15:51 UTC (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description cyril 2018-01-06 01:20:18 UTC
Have been using root ZFS on my Raspberry Pi 2 with FreeBSD 11.0 for quite some time (standard Raspberry MSDOS loader partition, then a small UFS containing only kernel /boot, then everything else in a ZFS pool, over GELI if that's somehow important).

After trying to update the kernel to 11.1 the system panics during its boot process with the message:
"thread 0x.... terminating with rrw lock 0x.... held"

Just using the same SD card and rewriting /boot with the files from 11.0 fixes this.

All the kernel/system binaries are taken straight from the FreeBSD-11.0(/11.1)-RELEASE-arm-armv6-RPI2.img.xz images from the official FTP, extracted to manually gpart'ed / formatted disks of course.
Comment 1 Steve Clarke 2018-01-28 15:51:30 UTC
I'm experiencing a similar regression with 11.1-RELEASE. I'm using the FreeBSD-11.1-RELEASE-arm-armv6-RPI2 images' standard UFS root partition. In my implementation the error is only triggered by interaction with external USB drives, either with zpool create or trying to import an existing file system with zfs import. 

I have also tried building the kernel and world from source for both 11.1 and CURRENT to rule out an error with the image. I also tried increasing the KSTACK_PAGES to 8 in both builds, However, both installations still exhibit the same error when trying to interact with the drive.

The only changes to the system I have made are in /boot/loader.conf

zfs_load="YES"
vm.kmem_size="150M"
vm.kmem_size_max="150M"
vfs.zfs.arc_max="32M"
vfs.zfs.vdev.cache.size="16M"