HEADS UP: Standalone kernel debug files moving out of /boot/kernel/

Bjoern A. Zeeb bzeeb-lists at lists.zabbadoz.net
Thu Oct 30 12:10:21 UTC 2014

On 30 Oct 2014, at 09:47 , O'Connor, Daniel <Daniel.O'Connor at emc.com> wrote:

> On 30 Oct 2014, at 19:44, Steven Hartland <killing at multiplay.co.uk> wrote:
>> On 30/10/2014 08:24, O'Connor, Daniel wrote:
>>> On 30 Oct 2014, at 13:23, Steven Hartland <killing at multiplay.co.uk> wrote:
>>>> Making things harder to manage vs saving a little bit of space on the
>>>> root partition really doesn't sound like a good idea; especially when
>>>> with the ZFS install, which I would suggest is becoming the norm, the
>>>> root partition doesn't suffer from space issues anyway.
>>> Note that it’s not “a little bit” of space.
>>> [freebsd10 8:21] /boot/kernel >ll kernel *.ko| awk '{i += $5} END {print $5}'
>>> 49312
>>> [freebsd10 8:21] /boot/kernel >ll *.symbols | awk '{i += $5} END {print $5}’
>>> 212464
>>> i.e. the debug information is more than 4x larger than the code its for (!).
>> That's still a trivial about of space in the grand scheme of things.
> Yes.

No it is not a trivial amount of space;  it’s about 20ish% of the installation of the base system.

I guess I am one source for the request to get them out of /boot/kernel/*.symbols into a spearate tarball and not install them by default for users.

The reasons for me are indeed manyfold:

(a) symbol files are for developers.  Developers are clever people, often with custom systems, they know how to deal with them as they already do whatever they want anyway in 7 different ways.

(b) A user should usually never have to bother with them, so why have them installed in first place?  They go onto (release) the media so that developers have access to them, or that users, if guided by a developer, can install them to debug a problem.  Moving them to a separate directory and into a different tarball makes that a lot easier.

(c) We have people deploying gazillions of FreeBSD systems from default media, this stuff does add up;  10TB sounds small unless you have to back it up regularly, need disaster copies, or you need to minimise recovery or migration time, when every s is worth a few $$s.

(d) A couple of times a year I do spare VM image backup and recovery including migration.  Moving the data back and forth can only happen in a very limited time frame, so I try to keep these VM images as small as possible.  rm -f /boot/kernel/*.symbol after install is really not keeping the sparseness as no one really supports TRIM on the VM images. Thus I’d just have lost 200MB * n VMs that I need to move around over 200ms RTT.  There are cruel workarounds; I know how to apply them as I am a developer, but if I do this stuff, there must be 1000s of users doing that, and they don’t.

(e) People still have / (boot) filesystems in the 256M-1G space for the foreseeable future.  How do you ever cramp two kernels in there during an update for a machine that you will never ever see again because it’s in Antarctica on a 9600 baud connection?

(f) …

Yes I can understand that on these 40TB ZFS machines, no one gives a damn about 200MB, but unfortunately not the entire world runs on these kinds of machines.   We have plenty of users on 10 year old hardware still running a FreeBSD installation and it works perfectly fine and does the job (until the HW dies;-).

The entire cp -pR kernel kernel.good solution is nothing I’d expect a user to ever do.  But I am aware that’s a “developer standard”.  Maybe we just need to improve the situation for ourselves rather than pessimising 98% of users out there.

I personally do not mind where the symbol files will end up as long as they are in their own directory and not onto systems by default with releases unless someone ticks a box.  Whether that is /boot/kernel/symbols/* or /usr/lib/***, I couldn’t care less, apart from the fact that /boot remains on a space constrained file system for a lot of legacy system that symbol files have filled up more than once for me in the past.

So maybe the real solution is indeed for developers to think how to manage kernels and related files and settings in the future?

Bjoern A. Zeeb             "Come on. Learn, goddamn it.", WarGames, 1983

More information about the freebsd-current mailing list