Whamcloud - gitweb
LU-14390 gnilnd: Use DIV_ROUND_UP to calculate niov 71/41371/2
authorShaun Tancheff <shaun.tancheff@hpe.com>
Sun, 31 Jan 2021 14:47:21 +0000 (08:47 -0600)
committerOleg Drokin <green@whamcloud.com>
Fri, 26 Feb 2021 08:23:04 +0000 (08:23 +0000)
Use DIV_ROUND_UP to calculate niov, also remove 'unlikely'
as this is the common case.

Fixes: 7a74d382 ("LU-13004 modules: replace lnet_kiov_t with struct bio_vec")
Test-Parameters: trivial
Signed-off-by: Shaun Tancheff <shaun.tancheff@hpe.com>
Change-Id: Iaf62326743ebe5e92bb3aa4b5780b47a5cfdfb18
Reviewed-on: https://review.whamcloud.com/41371
Tested-by: jenkins <devops@whamcloud.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Neil Brown <neilb@suse.de>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lnet/klnds/gnilnd/gnilnd_cb.c

index 5f838b1..edd60ce 100644 (file)
@@ -535,10 +535,9 @@ kgnilnd_setup_immediate_buffer(kgn_tx_t *tx, unsigned int niov,
                tx->tx_buffer = NULL;
        } else {
 
-               if ((niov > 0) && unlikely(niov > (nob/PAGE_SIZE))) {
-                       niov = round_up(nob + offset + kiov->bv_offset,
-                                       PAGE_SIZE);
-               }
+               if (niov && niov > (nob >> PAGE_SHIFT))
+                       niov = DIV_ROUND_UP(nob + offset + kiov->bv_offset,
+                                           PAGE_SIZE);
 
                LASSERTF(niov > 0 && niov < GNILND_MAX_IMMEDIATE/PAGE_SIZE,
                        "bad niov %d msg %p kiov %p offset %d nob%d\n",