The NetBSD Project

CVS log for src/sys/sys/vmem_impl.h

[BACK] Up to [cvs.NetBSD.org] / src / sys / sys

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.8 / (download) - annotate - [select for diffs], Sun Dec 3 19:34:08 2023 UTC (4 months, 1 week ago) by thorpej
Branch: MAIN
CVS Tags: HEAD
Changes since 1.7: +13 -1 lines
Diff to previous 1.7 (colored)

Add the notion of "private boundary tags" to vmem.  This allows vmem to
be used VERY early in boot; such consumers statically allocate the vmem
arena and boundary tags, and then explicitly add those static, private
boundary tags to the arena tag free list using the new function vmem_add_bts().

Vmem arenas that use private boundary tags will NOT consume the statically
allocated bootstrap tags used by the vmem system itself; the assumption is
that the consumer of such an arena knows what they're doing, and is responsible
for all necessary resource management.  A macro, VMEM_EST_BTCOUNT(), is
provided to help such consumers size the static boundary tag store based
on the expected number of spans and early allocations.  Once the private
tags are exhausted, the arena will dynamically allocate tags as usual.

Revision 1.7 / (download) - annotate - [select for diffs], Sun Dec 3 15:06:45 2023 UTC (4 months, 1 week ago) by thorpej
Branch: MAIN
Changes since 1.6: +3 -2 lines
Diff to previous 1.6 (colored)

Split the boundary tag "type" field into "type" and "flags" fields.
Initialize the flags field to 0 before inserting into an arena's free
tag list.

NFC, but makes diff for a future enhancement smaller.

Revision 1.6 / (download) - annotate - [select for diffs], Sat Dec 2 19:11:52 2023 UTC (4 months, 1 week ago) by thorpej
Branch: MAIN
Changes since 1.5: +5 -1 lines
Diff to previous 1.5 (colored)

vmem_init() requires the caller to include <sys/vmem_impl.h> in order
to know the storage size of "struct vmem", so put the prototype for
vmem_init() there as well.

Revision 1.5 / (download) - annotate - [select for diffs], Tue Jul 7 03:23:33 2020 UTC (3 years, 9 months ago) by thorpej
Branch: MAIN
CVS Tags: thorpej-ifq-base, thorpej-ifq, thorpej-i2c-spi-conf2-base, thorpej-i2c-spi-conf2, thorpej-i2c-spi-conf-base, thorpej-i2c-spi-conf, thorpej-futex2-base, thorpej-futex2, thorpej-futex-base, thorpej-futex, thorpej-cfargs2-base, thorpej-cfargs2, thorpej-cfargs-base, thorpej-cfargs, thorpej-altq-separation-base, thorpej-altq-separation, netbsd-10-base, netbsd-10-0-RELEASE, netbsd-10-0-RC6, netbsd-10-0-RC5, netbsd-10-0-RC4, netbsd-10-0-RC3, netbsd-10-0-RC2, netbsd-10-0-RC1, netbsd-10, cjep_sun2x-base1, cjep_sun2x-base, cjep_sun2x, cjep_staticlib_x-base1, cjep_staticlib_x-base, cjep_staticlib_x, bouyer-sunxi-drm-base, bouyer-sunxi-drm
Changes since 1.4: +2 -1 lines
Diff to previous 1.4 (colored)

Explicitly include <sys/pool.h> here; don't rely on it being included
by the includer.

Revision 1.3.32.1 / (download) - annotate - [select for diffs], Tue Apr 21 18:42:45 2020 UTC (3 years, 11 months ago) by martin
Branch: phil-wifi
Changes since 1.3: +3 -1 lines
Diff to previous 1.3 (colored) next main 1.4 (colored)

Sync with HEAD

Revision 1.3.42.1 / (download) - annotate - [select for diffs], Mon Apr 20 11:29:13 2020 UTC (3 years, 11 months ago) by bouyer
Branch: bouyer-xenpvh
Changes since 1.3: +3 -1 lines
Diff to previous 1.3 (colored) next main 1.4 (colored)

Sync with HEAD

Revision 1.4 / (download) - annotate - [select for diffs], Sun Apr 19 21:11:42 2020 UTC (3 years, 11 months ago) by ad
Branch: MAIN
CVS Tags: phil-wifi-20200421, bouyer-xenpvh-base2, bouyer-xenpvh-base1
Changes since 1.3: +3 -1 lines
Diff to previous 1.3 (colored)

- Fix uneven performance with "bursty" vmem arenas.  Adjust locking so that
  the mutex is acquired and released only once in the happy path.  Align
  tags to cachelines.  Size the hash table according to the maximum count of
  boundary tags over the interval just gone, not the instantaneous count,
  and decay that maximum value by 50%+1 after each rehash.  Round up to the
  next power of two to eliminate divisions.  Do the rehash check unlocked.

- Hash bucket size is sizeof(vmem_hashlist), not size of a pointer to same.

Revision 1.2.4.3 / (download) - annotate - [select for diffs], Wed Aug 20 00:04:44 2014 UTC (9 years, 7 months ago) by tls
Branch: tls-maxphys
Changes since 1.2.4.2: +2 -2 lines
Diff to previous 1.2.4.2 (colored) to branchpoint 1.2 (colored) next main 1.3 (colored)

Rebase to HEAD as of a few days ago.

Revision 1.3.4.2 / (download) - annotate - [select for diffs], Thu May 22 11:41:18 2014 UTC (9 years, 10 months ago) by yamt
Branch: yamt-pagecache
Changes since 1.3.4.1: +139 -0 lines
Diff to previous 1.3.4.1 (colored) to branchpoint 1.3 (colored) next main 1.4 (colored)

sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs.  ("Protocol error: too many arguments")

Revision 1.2.2.1 / (download) - annotate - [select for diffs], Sun May 18 17:46:21 2014 UTC (9 years, 11 months ago) by rmind
Branch: rmind-smpnet
Changes since 1.2: +3 -3 lines
Diff to previous 1.2 (colored) next main 1.3 (colored)

sync with head

Revision 1.3.4.1, Fri Nov 22 21:04:11 2013 UTC (10 years, 4 months ago) by yamt
Branch: yamt-pagecache
Changes since 1.3: +0 -139 lines
FILE REMOVED

file vmem_impl.h was added on branch yamt-pagecache on 2014-05-22 11:41:18 +0000

Revision 1.3 / (download) - annotate - [select for diffs], Fri Nov 22 21:04:11 2013 UTC (10 years, 4 months ago) by christos
Branch: MAIN
CVS Tags: yamt-pagecache-base9, tls-maxphys-base-20171202, tls-maxphys-base, tls-earlyentropy-base, tls-earlyentropy, rmind-smpnet-nbase, rmind-smpnet-base, riastradh-xf86-video-intel-2-7-1-pre-2-21-15, riastradh-drm2-base3, prg-localcount2-base3, prg-localcount2-base2, prg-localcount2-base1, prg-localcount2-base, prg-localcount2, phil-wifi-base, phil-wifi-20200411, phil-wifi-20200406, phil-wifi-20191119, phil-wifi-20190609, pgoyette-localcount-base, pgoyette-localcount-20170426, pgoyette-localcount-20170320, pgoyette-localcount-20170107, pgoyette-localcount-20161104, pgoyette-localcount-20160806, pgoyette-localcount-20160726, pgoyette-localcount, pgoyette-compat-merge-20190127, pgoyette-compat-base, pgoyette-compat-20190127, pgoyette-compat-20190118, pgoyette-compat-1226, pgoyette-compat-1126, pgoyette-compat-1020, pgoyette-compat-0930, pgoyette-compat-0906, pgoyette-compat-0728, pgoyette-compat-0625, pgoyette-compat-0521, pgoyette-compat-0502, pgoyette-compat-0422, pgoyette-compat-0415, pgoyette-compat-0407, pgoyette-compat-0330, pgoyette-compat-0322, pgoyette-compat-0315, pgoyette-compat, perseant-stdc-iso10646-base, perseant-stdc-iso10646, nick-nhusb-base-20170825, nick-nhusb-base-20170204, nick-nhusb-base-20161204, nick-nhusb-base-20161004, nick-nhusb-base-20160907, nick-nhusb-base-20160529, nick-nhusb-base-20160422, nick-nhusb-base-20160319, nick-nhusb-base-20151226, nick-nhusb-base-20150921, nick-nhusb-base-20150606, nick-nhusb-base-20150406, nick-nhusb-base, nick-nhusb, netbsd-9-base, netbsd-9-3-RELEASE, netbsd-9-2-RELEASE, netbsd-9-1-RELEASE, netbsd-9-0-RELEASE, netbsd-9-0-RC2, netbsd-9-0-RC1, netbsd-9, netbsd-8-base, netbsd-8-2-RELEASE, netbsd-8-1-RELEASE, netbsd-8-1-RC1, netbsd-8-0-RELEASE, netbsd-8-0-RC2, netbsd-8-0-RC1, netbsd-8, netbsd-7-nhusb-base-20170116, netbsd-7-nhusb-base, netbsd-7-nhusb, netbsd-7-base, netbsd-7-2-RELEASE, netbsd-7-1-RELEASE, netbsd-7-1-RC2, netbsd-7-1-RC1, netbsd-7-1-2-RELEASE, netbsd-7-1-1-RELEASE, netbsd-7-1, netbsd-7-0-RELEASE, netbsd-7-0-RC3, netbsd-7-0-RC2, netbsd-7-0-RC1, netbsd-7-0-2-RELEASE, netbsd-7-0-1-RELEASE, netbsd-7-0, netbsd-7, matt-nb8-mediatek-base, matt-nb8-mediatek, localcount-20160914, jdolecek-ncq-base, jdolecek-ncq, isaki-audio2-base, isaki-audio2, is-mlppp-base, is-mlppp, bouyer-xenpvh-base, bouyer-socketcan-base1, bouyer-socketcan-base, bouyer-socketcan, ad-namecache-base3, ad-namecache-base2, ad-namecache-base1, ad-namecache-base, ad-namecache
Branch point for: yamt-pagecache, phil-wifi, bouyer-xenpvh
Changes since 1.2: +3 -3 lines
Diff to previous 1.2 (colored)

convert vmem, signals, powerhooks from CIRCLEQ -> TAILQ.

Revision 1.2.4.2 / (download) - annotate - [select for diffs], Mon Feb 25 00:30:13 2013 UTC (11 years, 1 month ago) by tls
Branch: tls-maxphys
Changes since 1.2.4.1: +139 -0 lines
Diff to previous 1.2.4.1 (colored) to branchpoint 1.2 (colored)

resync with head

Revision 1.2.4.1, Tue Jan 29 21:26:24 2013 UTC (11 years, 2 months ago) by tls
Branch: tls-maxphys
Changes since 1.2: +0 -139 lines
FILE REMOVED

file vmem_impl.h was added on branch tls-maxphys on 2013-02-25 00:30:13 +0000

Revision 1.2 / (download) - annotate - [select for diffs], Tue Jan 29 21:26:24 2013 UTC (11 years, 2 months ago) by para
Branch: MAIN
CVS Tags: riastradh-drm2-base2, riastradh-drm2-base1, riastradh-drm2-base, riastradh-drm2, khorben-n900, agc-symver-base, agc-symver
Branch point for: tls-maxphys, rmind-smpnet
Changes since 1.1: +3 -2 lines
Diff to previous 1.1 (colored)

make vmem(9) ready to be used early during bootstrap to replace extent(9)
pass memory for vmem structs into the initialization function and
do away with the static pool of vmem structs.
remove special bootstrapping of the quantum cache pools of the kmem_va_arena
as memory for pool_caches is allocated via pool_allocator_meta which is
fully operational at this point.

Revision 1.1 / (download) - annotate - [select for diffs], Sat Jan 26 13:50:33 2013 UTC (11 years, 2 months ago) by para
Branch: MAIN

make vmem(9) ready to be used early during bootstrap to replace extent(9).
pass memory for vmem structs into the initialization functions and
do away with the static pools for this.
factor out the vmem internal structures into a private header.
remove special bootstrapping of the kmem_va_arena as all necessary memory
comes from pool_allocator_meta wich is fully operational at this point.

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.




CVSweb <webmaster@jp.NetBSD.org>