Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 20 Feb 2019 14:10:46 +0000 (UTC)
From:      "Pedro F. Giffuni" <pfg@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org
Subject:   svn commit: r344362 - stable/12/sys/vm
Message-ID:  <201902201410.x1KEAk1p037237@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: pfg
Date: Wed Feb 20 14:10:46 2019
New Revision: 344362
URL: https://svnweb.freebsd.org/changeset/base/344362

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/12/sys/vm/uma_core.c
  stable/12/sys/vm/uma_int.h
Directory Properties:
  stable/12/   (props changed)

Modified: stable/12/sys/vm/uma_core.c
==============================================================================
--- stable/12/sys/vm/uma_core.c	Wed Feb 20 13:37:27 2019	(r344361)
+++ stable/12/sys/vm/uma_core.c	Wed Feb 20 14:10:46 2019	(r344362)
@@ -630,7 +630,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;
@@ -674,8 +674,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);
@@ -688,10 +688,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/12/sys/vm/uma_int.h
==============================================================================
--- stable/12/sys/vm/uma_int.h	Wed Feb 20 13:37:27 2019	(r344361)
+++ stable/12/sys/vm/uma_int.h	Wed Feb 20 14:10:46 2019	(r344362)
@@ -170,8 +170,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 */
 };
 
 /*
@@ -449,7 +449,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);
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201902201410.x1KEAk1p037237>