EFI loader: Don't free bcache for DEVT_DISK devs
Booting on an EC2 c5.xlarge instance, this reduces the number of I/Os
performed from 609 to 432, reduces the total number of blocks read
from 61963 to 60797, and reduces the time spent in the loader by 39 ms.
Note that b4cb3fe0e3
allowed the bcache to be retained for most of
the boot process, but relies on mounting filesystems; this commit
allows the bcache to be retained at the start of the boot process,
before the root filesystem has been located.
Reviewed by: imp, tsoome
MFC after: 1 week
Sponsored by: https://www.patreon.com/cperciva
Differential Revision: https://reviews.freebsd.org/D32239
This commit is contained in:
parent
a6499c56ab
commit
ce73f768b7
@ -949,8 +949,10 @@ efipart_close(struct open_file *f)
|
||||
pd->pd_open--;
|
||||
if (pd->pd_open == 0) {
|
||||
pd->pd_blkio = NULL;
|
||||
bcache_free(pd->pd_bcache);
|
||||
pd->pd_bcache = NULL;
|
||||
if (dev->dd.d_dev->dv_type != DEVT_DISK) {
|
||||
bcache_free(pd->pd_bcache);
|
||||
pd->pd_bcache = NULL;
|
||||
}
|
||||
}
|
||||
if (dev->dd.d_dev->dv_type == DEVT_DISK)
|
||||
return (disk_close(dev));
|
||||
|
Loading…
Reference in New Issue
Block a user