freebsd-dev/sys/boot/common
Toomas Soome 7a60826b65 loader: bcache read ahead block count should take account the large sectors
The loader bcache is implementing simple read-ahead to boost the cache.
The bcache is built based on 512B block sizes, and the read ahead is attempting
to read number of cache blocks, based on amount of the free bcache space.

However, there are devices using larger sector sizes than 512B, most obviously
the CD media is based on 2k sectors. This means the read-ahead can not be just
random number of blocks, but we should use value suitable also for use with
larger sectors, as for example, with CD devices, we should read multiple of 2KB.
Since the sector size from disk interface is not too reliable, i guess we can
just use "good enough" value, so the implementation is rounding down the read
ahead block count to be multiple of 16.

This means we have covered sector sizes to 8k.

In addition, the update does implement the end of cache marker, to help to
detect the possible memory corruption - I have not seen it happening so far,
but it does not hurt to have the detection mechanism in place.

Reviewed by:	allanjude
Approved by:	allanjude (mentor)
Differential Revision:	https://reviews.freebsd.org/D9179
2017-02-06 08:58:40 +00:00
..
bcache.c loader: bcache read ahead block count should take account the large sectors 2017-02-06 08:58:40 +00:00
boot.c loader is filling fixed length command_errbuf with sprintf() and is trusting 2016-08-20 16:23:19 +00:00
bootstrap.h loader: bcache read ahead block count should take account the large sectors 2017-02-06 08:58:40 +00:00
commands.c lsdev device name section headers should be printed by dv_print callback. 2016-11-19 08:54:21 +00:00
console.c Prevent loader.conf load failure due to unknown console entries 2016-01-21 15:27:44 +00:00
crc32.c
crc32.h
dev_net.c lsdev device name section headers should be printed by dv_print callback. 2016-11-19 08:54:21 +00:00
dev_net.h Refactor net_getparams() to make it easier to get params from sources other 2015-05-18 15:46:43 +00:00
devopen.c
disk.c loader: Implement disk_ioctl() to support DIOCGSECTORSIZE and DIOCGMEDIASIZE. 2017-02-06 08:26:45 +00:00
disk.h loader: disk/part api needs to use uint64_t offsets 2017-02-01 20:10:56 +00:00
gpt.c Implement GELI (AES-XTS and AES-CBC only) in gptboot and gptzfsboot 2016-03-16 23:12:19 +00:00
gpt.h Implement GELI (AES-XTS and AES-CBC only) in gptboot and gptzfsboot 2016-03-16 23:12:19 +00:00
help.common
install.c Add support for LOADER_RC setting in the pkgfs manifest (defaults to 2016-11-11 17:41:17 +00:00
interp_backslash.c sys/boot/common: use of spaces vs. TAB. 2016-05-12 01:19:11 +00:00
interp_forth.c Reduce boot loader version string duplication 2016-12-18 13:57:23 +00:00
interp_parse.c Improve boot loader quote parsing 2016-07-30 17:53:37 +00:00
interp.c The file /boot/boot.conf existed for the 3.0 release (r38764). It was 2016-10-14 16:05:44 +00:00
isapnp.c sys/boot/common: use of spaces vs. TAB. 2016-05-12 01:19:11 +00:00
isapnp.h Remove pc98 support completely. 2017-01-28 02:22:15 +00:00
load_elf32_obj.c Add support for FreeBSD/i386 guests under bhyve. 2014-02-05 04:39:03 +00:00
load_elf32.c Add support for FreeBSD/i386 guests under bhyve. 2014-02-05 04:39:03 +00:00
load_elf64_obj.c
load_elf64.c
load_elf_obj.c Use the ABI-prescribed name for SHT_X86_64_UNWIND in the loader and 2016-04-08 10:23:48 +00:00
load_elf.c Don't set the offset when loading the kernel on the arm loader.efi. The 2016-02-09 09:39:30 +00:00
loader.8 The file /boot/boot.conf existed for the 3.0 release (r38764). It was 2016-10-14 16:05:44 +00:00
ls.c loader is filling fixed length command_errbuf with sprintf() and is trusting 2016-08-20 16:23:19 +00:00
Makefile Install loader(8) and zfsloader(8) only once 2015-06-19 05:42:24 +00:00
Makefile.depend META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
Makefile.inc Remove pc98 support completely. 2017-01-28 02:22:15 +00:00
md.c dosfs support in libstand is broken since r298230 2016-12-30 19:06:29 +00:00
merge_help.awk
misc.c Enable warnings in EFI boot code 2016-01-12 02:17:39 +00:00
module.c Loader paged/pageable data is not always paged. 2016-11-08 06:50:18 +00:00
newvers.sh Build loaders reproducibly when WITH_REPRODUCIBLE_BUILD 2016-12-19 14:45:59 +00:00
panic.c
part.c loader: Implement disk_ioctl() to support DIOCGSECTORSIZE and DIOCGMEDIASIZE. 2017-02-06 08:26:45 +00:00
part.h loader: Implement disk_ioctl() to support DIOCGSECTORSIZE and DIOCGMEDIASIZE. 2017-02-06 08:26:45 +00:00
paths.h Fix mistake when transitioning to the new defines with ZFS loader. I 2016-01-27 16:36:18 +00:00
pnp.c Really make WITHOUT_FORTH (MK_FORTH==no) work. The recent inclusion of 2016-10-25 17:31:57 +00:00
rbx.h RBX_ defines are in rbx.h, move it there. 2016-01-26 06:26:44 +00:00
reloc_elf32.c
reloc_elf64.c
reloc_elf.c Don't include <errno.h> in reloc_elf.c, as it includes <stand.h> just 2017-01-11 18:47:00 +00:00
self_reloc.c EFI loaders: parse rela relocations on amd64 2016-12-01 14:28:37 +00:00
ufsread.c ufsread: Do not cast struct direct from void * 2016-09-14 17:43:32 +00:00
util.c Loader paged/pageable data is not always paged. 2016-11-08 06:50:18 +00:00
util.h Loader paged/pageable data is not always paged. 2016-11-08 06:50:18 +00:00
zfsloader.8 Misc mdoc fixes: 2014-11-23 21:00:00 +00:00