svn commit: r344363 - stable/11/sys/vm

Pedro F. Giffuni pfg at FreeBSD.org
Wed Feb 20 14:12:26 UTC 2019


Author: pfg
Date: Wed Feb 20 14:12:25 2019
New Revision: 344363
URL: https://svnweb.freebsd.org/changeset/base/344363

Log:
  MFC r344042:
  UMA: unsign some variables related to allocation in hash_alloc().
  
  As a followup to r343673, unsign some variables related to allocation
  since the hashsize cannot be negative. This gives a bit more space to
  handle bigger allocations and avoid some implicit casting.
  
  While here also unsign uh_hashmask, it makes little sense to keep it
  signed.
  
  Differential Revision:	https://reviews.freebsd.org/D19148

Modified:
  stable/11/sys/vm/uma_core.c
  stable/11/sys/vm/uma_int.h
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/vm/uma_core.c
==============================================================================
--- stable/11/sys/vm/uma_core.c	Wed Feb 20 14:10:46 2019	(r344362)
+++ stable/11/sys/vm/uma_core.c	Wed Feb 20 14:12:25 2019	(r344363)
@@ -537,7 +537,7 @@ zone_timeout(uma_zone_t zone)
 static int
 hash_alloc(struct uma_hash *hash)
 {
-	int oldsize;
+	u_int oldsize;
 	size_t alloc;
 
 	oldsize = hash->uh_hashsize;
@@ -581,8 +581,8 @@ static int
 hash_expand(struct uma_hash *oldhash, struct uma_hash *newhash)
 {
 	uma_slab_t slab;
-	int hval;
-	int i;
+	u_int hval;
+	u_int idx;
 
 	if (!newhash->uh_slab_hash)
 		return (0);
@@ -595,10 +595,10 @@ hash_expand(struct uma_hash *oldhash, struct uma_hash 
 	 * full rehash.
 	 */
 
-	for (i = 0; i < oldhash->uh_hashsize; i++)
-		while (!SLIST_EMPTY(&oldhash->uh_slab_hash[i])) {
-			slab = SLIST_FIRST(&oldhash->uh_slab_hash[i]);
-			SLIST_REMOVE_HEAD(&oldhash->uh_slab_hash[i], us_hlink);
+	for (idx = 0; idx < oldhash->uh_hashsize; idx++)
+		while (!SLIST_EMPTY(&oldhash->uh_slab_hash[idx])) {
+			slab = SLIST_FIRST(&oldhash->uh_slab_hash[idx]);
+			SLIST_REMOVE_HEAD(&oldhash->uh_slab_hash[idx], us_hlink);
 			hval = UMA_HASH(newhash, slab->us_data);
 			SLIST_INSERT_HEAD(&newhash->uh_slab_hash[hval],
 			    slab, us_hlink);

Modified: stable/11/sys/vm/uma_int.h
==============================================================================
--- stable/11/sys/vm/uma_int.h	Wed Feb 20 14:10:46 2019	(r344362)
+++ stable/11/sys/vm/uma_int.h	Wed Feb 20 14:12:25 2019	(r344363)
@@ -144,8 +144,8 @@ SLIST_HEAD(slabhead, uma_slab);
 
 struct uma_hash {
 	struct slabhead	*uh_slab_hash;	/* Hash table for slabs */
-	int		uh_hashsize;	/* Current size of the hash table */
-	int		uh_hashmask;	/* Mask used during hashing */
+	u_int		uh_hashsize;	/* Current size of the hash table */
+	u_int		uh_hashmask;	/* Mask used during hashing */
 };
 
 /*
@@ -386,7 +386,7 @@ static __inline uma_slab_t
 hash_sfind(struct uma_hash *hash, uint8_t *data)
 {
         uma_slab_t slab;
-        int hval;
+        u_int hval;
 
         hval = UMA_HASH(hash, data);
 


More information about the svn-src-all mailing list