On 17/10/2019 14.03, Russell King - ARM Linux admin wrote: > We used to have this on ARM - it was called from the decompressor > code via an arch_decomp_wdog() hook. > > That code got removed because it is entirely unsuitable for a multi- > platform kernel. This looks like it takes an address for the watchdog > from the Kconfig, and builds that into the decompressor, making the > decompressor specific to that board or platform. > > I'm not sure distros are going to like that given where we are with > multiplatform kernels.
This is definitely not for multiplatform kernels or general distros, it's for kernels that are built as part of a BSP for a specific board - hence the "Say N unless you know you need this.". I didn't know it used to exist. But I do know that something like this is carried out-of-tree for lots of boards, so I thought I'd try to get upstream support. The first two patches, or something like them, would be nice on their own, as that would minimize the conflicts when forward-porting the board-specific patch. But such a half-implemented feature that requires out-of-tree patches to actually do anything useful of course won't fly. I'm not really a big fan of the third patch, even though it does work for all the cases I've encountered so far - I'm sure there would be boards where a much more complicated solution would be needed. Another method I thought of was to just supply a __weak no-op decompress_keepalive(), and then have a config option to point at an extra object file to link into the compressed/vmlinux (similar to the initramfs_source option that also points to some external resource). But if the mainline kernel doesn't want anything like this re-introduced, that's also fine, that just means a bit of job security. Rasmus