GPT vs MBR for swap devices
Mark Millard
marklmi at yahoo.com
Thu Jun 21 14:16:30 UTC 2018
On 2018-Jun-21, at 12:28 AM, Trev <freebsd-arm at sentry.org> wrote:
> I gave in and bought an Raspberry Pi 3B+ and now I've been bitten by Bob's OOM assassin too...
>
> % gpart show
> => 63 31116225 mmcsd0 MBR (15G)
> 63 2016 - free - (1.0M)
> 2079 102312 1 fat32lba [active] (50M)
> 104391 31008825 2 freebsd (15G)
> 31113216 3072 - free - (1.5M)
>
> => 0 31008825 mmcsd0s2 BSD (15G)
> 0 57 - free - (29K)
> 57 31008768 1 freebsd-ufs (15G)
>
> => 40 60567472 da0 GPT (29G)
> 40 4194304 1 freebsd-swap (2.0G)
> 4194344 56373168 2 freebsd-ufs (27G)
>
> % cat /etc/fstab
> # Custom /etc/fstab for FreeBSD embedded images
> /dev/ufs/rootfs / ufs rw,noatime 1 1
> /dev/msdosfs/MSDOSBOOT /boot/msdos msdosfs rw,noatime 0 0
> md1 /tmp mfs rw,noatime,-s100m 0 0
> md2 /var/log mfs rw,noatime,-s15m 0 0
> md3 /var/tmp mfs rw,noatime,-s15m 0 0
> /dev/ufs/swap none swap sw 0 0
> /dev/ufs/usr /usr ufs rw,noatime 2 2
>
> da0 is a brand new 32G EMTEC USB2 memory key housing /usr and swap partitions.
>
> FreeBSD 12.0-CURRENT #0 r335317: Mon Jun 18 17:37:04 UTC 2018 root at releng3.nyi.freebsd.org:/usr/obj/usr/src/arm64.aarch64/sys/GENERIC arm64
>
> make -j4 buildworld resulted in:
>
> Jun 21 17:05:12 rpi3 kernel: pid 10326 (c++), uid 0, was killed: out of swap space
> --- CodeGen/AsmPrinter/CodeViewDebug.o ---
> c++: error: unable to execute command: Killed
> c++: error: clang frontend command failed due to signal (use -v to see invocation)
> FreeBSD clang version 6.0.0 (tags/RELEASE_600/final 326565) (based on LLVM 6.0.0)
> Target: aarch64-unknown-freebsd12.0
> Thread model: posix
> InstalledDir: /usr/bin
> c++: note: diagnostic msg: PLEASE submit a bug report to https://bugs.freebsd.org/submit/ and include the crash backtrace, preprocessed source, and associated run script.
> c++: note: diagnostic msg:
>
> I happened to have been watching top (5 second interval) at the time and of the 2G swap, only 45M was shown to be in use.
Are you getting errors such as those listed in:
https://lists.freebsd.org/pipermail/freebsd-arm/2018-June/018091.html
? If not, your context may be a better test case than Bob P.'s.
It looks like the latest from Bob P. is that when his /dev/da0
is not used for swap (and so has far less I/O) his builds finish,
apparently without logging errors:
http://www.zefox.net/~fbsd/rpi3/swaptests/newtests/1gbsdflash_1.3gbusbmechanical_swapinfo/readme
where he writes:
> This test used the 1 GB SD flash swap partition plus a 1.3 GB partition
> on a USB mechanical disk. The -j4 buildworld ran to completion without
> obvious errors, serving mostly to suggest there's nothing wrong with
> the read/write behavior of /dev/da0, the USB flash drive holding /usr
> and with it /usr/obj.
(I do not share his conclusion about /dev/da0 based on the smaller
amount of I/O when it was not used for swapping.)
As far as I know the swap system is far more dependent on timely
I/O than the other I/O involved in a build.
Even without errors considered Bob was getting things like the
large ms/w figures below:
> Mon Jun 18 09:42:05 PDT 2018
> Device 1K-blocks Used Avail Capacity
> /dev/da0b 1048576 3412 1045164 0%
> /dev/mmcsd0s3b 1048576 3508 1045068 0%
> Total 2097152 6920 2090232 0%
> dT: 10.043s w: 10.000s
> L(q) ops/s r/s kBps ms/r w/s kBps ms/w d/s kBps ms/d %busy Name
> 0 0 0 0 0.0 0 9 10.8 0 0 0.0 0.1 mmcsd0
> 46 0 0 0 0.0 0 16 12355 0 0 0.0 85.9 da0
> 0 0 0 0 0.0 0 9 10.8 0 0 0.0 0.1 mmcsd0s3
> 0 0 0 0 0.0 0 9 10.8 0 0 0.0 0.1 mmcsd0s3a
> 33 0 0 0 0.0 0 22 12318 0 0 0.0 114.1 da0d
> Mon Jun 18 09:42:25 PDT 2018
> Device 1K-blocks Used Avail Capacity
> /dev/da0b 1048576 3412 1045164 0%
> /dev/mmcsd0s3b 1048576 3508 1045068 0%
> Total 2097152 6920 2090232 0%
Are you getting such during the swapping activity?
Overall: the I/O errors (if any) and the large ms/w (or ms/r) figures
are things to look for.
===
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)
More information about the freebsd-arm
mailing list