align buffers used for I/O to DEV_BSIZE so it's executed more optimally
when run for xbd(4) raw (character) device
This commit is contained in:
parent
4a168442c5
commit
93217591a2
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: inode.c,v 1.72 2017/02/08 16:11:40 rin Exp $ */
|
||||
/* $NetBSD: inode.c,v 1.73 2020/04/17 09:42:27 jdolecek Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1980, 1986, 1993
|
||||
|
@ -34,7 +34,7 @@
|
|||
#if 0
|
||||
static char sccsid[] = "@(#)inode.c 8.8 (Berkeley) 4/28/95";
|
||||
#else
|
||||
__RCSID("$NetBSD: inode.c,v 1.72 2017/02/08 16:11:40 rin Exp $");
|
||||
__RCSID("$NetBSD: inode.c,v 1.73 2020/04/17 09:42:27 jdolecek Exp $");
|
||||
#endif
|
||||
#endif /* not lint */
|
||||
|
||||
|
@ -463,7 +463,7 @@ setinodebuf(ino_t inum)
|
|||
partialsize = inobufsize;
|
||||
}
|
||||
if (inodebuf == NULL &&
|
||||
(inodebuf = malloc((unsigned)inobufsize)) == NULL)
|
||||
(inodebuf = aligned_alloc(DEV_BSIZE, (unsigned)inobufsize)) == NULL)
|
||||
errexit("Cannot allocate space for inode buffer");
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: setup.c,v 1.102 2018/10/05 09:49:23 hannken Exp $ */
|
||||
/* $NetBSD: setup.c,v 1.103 2020/04/17 09:42:27 jdolecek Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1980, 1986, 1993
|
||||
|
@ -34,7 +34,7 @@
|
|||
#if 0
|
||||
static char sccsid[] = "@(#)setup.c 8.10 (Berkeley) 5/9/95";
|
||||
#else
|
||||
__RCSID("$NetBSD: setup.c,v 1.102 2018/10/05 09:49:23 hannken Exp $");
|
||||
__RCSID("$NetBSD: setup.c,v 1.103 2020/04/17 09:42:27 jdolecek Exp $");
|
||||
#endif
|
||||
#endif /* not lint */
|
||||
|
||||
|
@ -126,10 +126,10 @@ setup(const char *dev, const char *origdev)
|
|||
lfdir = 0;
|
||||
initbarea(&sblk);
|
||||
initbarea(&asblk);
|
||||
sblk.b_un.b_buf = malloc(SBLOCKSIZE);
|
||||
sblock = malloc(SBLOCKSIZE);
|
||||
asblk.b_un.b_buf = malloc(SBLOCKSIZE);
|
||||
altsblock = malloc(SBLOCKSIZE);
|
||||
sblk.b_un.b_buf = aligned_alloc(DEV_BSIZE, SBLOCKSIZE);
|
||||
sblock = aligned_alloc(DEV_BSIZE, SBLOCKSIZE);
|
||||
asblk.b_un.b_buf = aligned_alloc(DEV_BSIZE, SBLOCKSIZE);
|
||||
altsblock = aligned_alloc(DEV_BSIZE, SBLOCKSIZE);
|
||||
if (sblk.b_un.b_buf == NULL || asblk.b_un.b_buf == NULL ||
|
||||
sblock == NULL || altsblock == NULL)
|
||||
errexit("Cannot allocate space for superblock");
|
||||
|
@ -458,12 +458,14 @@ setup(const char *dev, const char *origdev)
|
|||
* read in the summary info.
|
||||
*/
|
||||
asked = 0;
|
||||
sblock->fs_csp = (struct csum *)calloc(1, sblock->fs_cssize);
|
||||
sblock->fs_csp = (struct csum *)aligned_alloc(DEV_BSIZE,
|
||||
sblock->fs_cssize);
|
||||
if (sblock->fs_csp == NULL) {
|
||||
pwarn("cannot alloc %u bytes for summary info\n",
|
||||
sblock->fs_cssize);
|
||||
goto badsblabel;
|
||||
}
|
||||
memset(sblock->fs_csp, 0, sblock->fs_cssize);
|
||||
for (i = 0, j = 0; i < sblock->fs_cssize; i += sblock->fs_bsize, j++) {
|
||||
size = sblock->fs_cssize - i < sblock->fs_bsize ?
|
||||
sblock->fs_cssize - i : sblock->fs_bsize;
|
||||
|
@ -492,12 +494,13 @@ setup(const char *dev, const char *origdev)
|
|||
* allocate and initialize the necessary maps
|
||||
*/
|
||||
bmapsize = roundup(howmany(maxfsblock, NBBY), sizeof(int16_t));
|
||||
blockmap = calloc((unsigned)bmapsize, sizeof (char));
|
||||
blockmap = aligned_alloc(DEV_BSIZE, (unsigned)bmapsize);
|
||||
if (blockmap == NULL) {
|
||||
pwarn("cannot alloc %u bytes for blockmap\n",
|
||||
(unsigned)bmapsize);
|
||||
goto badsblabel;
|
||||
}
|
||||
memset(blockmap, 0, bmapsize);
|
||||
inostathead = calloc((unsigned)(sblock->fs_ncg),
|
||||
sizeof(struct inostatlist));
|
||||
if (inostathead == NULL) {
|
||||
|
@ -526,7 +529,7 @@ setup(const char *dev, const char *origdev)
|
|||
(unsigned)(numdirs * sizeof(struct inoinfo *)));
|
||||
goto badsblabel;
|
||||
}
|
||||
cgrp = malloc(sblock->fs_cgsize);
|
||||
cgrp = aligned_alloc(DEV_BSIZE, sblock->fs_cgsize);
|
||||
if (cgrp == NULL) {
|
||||
pwarn("cannot alloc %u bytes for cylinder group\n",
|
||||
sblock->fs_cgsize);
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: utilities.c,v 1.65 2017/02/08 16:11:40 rin Exp $ */
|
||||
/* $NetBSD: utilities.c,v 1.66 2020/04/17 09:42:27 jdolecek Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1980, 1986, 1993
|
||||
|
@ -34,7 +34,7 @@
|
|||
#if 0
|
||||
static char sccsid[] = "@(#)utilities.c 8.6 (Berkeley) 5/19/95";
|
||||
#else
|
||||
__RCSID("$NetBSD: utilities.c,v 1.65 2017/02/08 16:11:40 rin Exp $");
|
||||
__RCSID("$NetBSD: utilities.c,v 1.66 2020/04/17 09:42:27 jdolecek Exp $");
|
||||
#endif
|
||||
#endif /* not lint */
|
||||
|
||||
|
@ -135,13 +135,13 @@ bufinit(void)
|
|||
char *bufp;
|
||||
|
||||
pbp = pdirbp = (struct bufarea *)0;
|
||||
bufp = malloc((unsigned int)sblock->fs_bsize);
|
||||
bufp = aligned_alloc(DEV_BSIZE, (unsigned int)sblock->fs_bsize);
|
||||
if (bufp == 0)
|
||||
errexit("cannot allocate buffer pool");
|
||||
cgblk.b_un.b_buf = bufp;
|
||||
initbarea(&cgblk);
|
||||
#ifndef NO_APPLE_UFS
|
||||
bufp = malloc((unsigned int)APPLEUFS_LABEL_SIZE);
|
||||
bufp = aligned_alloc(DEV_BSIZE, (unsigned int)APPLEUFS_LABEL_SIZE);
|
||||
if (bufp == 0)
|
||||
errexit("cannot allocate buffer pool");
|
||||
appleufsblk.b_un.b_buf = bufp;
|
||||
|
@ -153,7 +153,7 @@ bufinit(void)
|
|||
bufcnt = MINBUFS;
|
||||
for (i = 0; i < bufcnt; i++) {
|
||||
bp = malloc(sizeof(struct bufarea));
|
||||
bufp = malloc((unsigned int)sblock->fs_bsize);
|
||||
bufp = aligned_alloc(DEV_BSIZE, (unsigned int)sblock->fs_bsize);
|
||||
if (bp == NULL || bufp == NULL) {
|
||||
if (i >= MINBUFS) {
|
||||
if (bp)
|
||||
|
|
Loading…
Reference in New Issue