svn commit: r248569 - in head/sys: kern vm
Ivan Klymenko
fidaj at ukr.net
Thu Mar 21 12:07:55 UTC 2013
Kernel panic
http://pkgupdate.nevosoft.ru/core.txt.0
http://pkgupdate.nevosoft.ru/vmcore.0
http://pkgupdate.nevosoft.ru/kernel
http://pkgupdate.nevosoft.ru/kernel.symbols
В Thu, 21 Mar 2013 07:28:15 +0000 (UTC)
Konstantin Belousov <kib at FreeBSD.org> пишет:
> Author: kib
> Date: Thu Mar 21 07:28:15 2013
> New Revision: 248569
> URL: http://svnweb.freebsd.org/changeset/base/248569
>
> Log:
> Only size and create the bio_transient_map when unmapped buffers are
> enabled. Now, disabling the unmapped buffers should result in the
> kernel memory map identical to pre-r248550.
>
> Sponsored by: The FreeBSD Foundation
>
> Modified:
> head/sys/kern/vfs_bio.c
> head/sys/vm/vm_init.c
>
> Modified: head/sys/kern/vfs_bio.c
> ==============================================================================
> --- head/sys/kern/vfs_bio.c Thu Mar 21 07:26:33 2013
> (r248568) +++ head/sys/kern/vfs_bio.c Thu Mar 21 07:28:15
> 2013 (r248569) @@ -586,7 +586,7 @@
> kern_vfs_bio_buffer_alloc(caddr_t v, lon
> * allows to not trim the buffer KVA for the architectures
> * with ample KVA space.
> */
> - if (bio_transient_maxcnt == 0) {
> + if (bio_transient_maxcnt == 0 && unmapped_buf_allowed) {
> maxbuf_sz = maxbcache != 0 ? maxbcache : maxbuf *
> BKVASIZE; buf_sz = (long)nbuf * BKVASIZE;
> if (buf_sz < maxbuf_sz / 10 * 9) {
>
> Modified: head/sys/vm/vm_init.c
> ==============================================================================
> --- head/sys/vm/vm_init.c Thu Mar 21 07:26:33 2013
> (r248568) +++ head/sys/vm/vm_init.c Thu Mar 21 07:28:15
> 2013 (r248569) @@ -189,10 +189,12 @@ again:
> buffer_map = kmem_suballoc(clean_map, &kmi->buffer_sva,
> &kmi->buffer_eva, (long)nbuf * BKVASIZE, FALSE);
> buffer_map->system_map = 1;
> - bio_transient_map = kmem_suballoc(clean_map,
> &kmi->bio_transient_sva,
> - &kmi->bio_transient_eva, (long)bio_transient_maxcnt *
> MAXPHYS,
> - FALSE);
> - bio_transient_map->system_map = 1;
> + if (bio_transient_maxcnt != 0) {
> + bio_transient_map = kmem_suballoc(clean_map,
> + &kmi->bio_transient_sva, &kmi->bio_transient_eva,
> + (long)bio_transient_maxcnt * MAXPHYS, FALSE);
> + bio_transient_map->system_map = 1;
> + }
> pager_map = kmem_suballoc(clean_map, &kmi->pager_sva,
> &kmi->pager_eva, (long)nswbuf * MAXPHYS, FALSE);
> pager_map->system_map = 1;
More information about the svn-src-head
mailing list