svn commit: r279238 - user/nwhitehorn/ppc64-pmap-rework/pseries

Nathan Whitehorn nwhitehorn at FreeBSD.org
Tue Feb 24 15:07:10 UTC 2015


Author: nwhitehorn
Date: Tue Feb 24 15:07:09 2015
New Revision: 279238
URL: https://svnweb.freebsd.org/changeset/base/279238

Log:
  IFC

Modified:
  user/nwhitehorn/ppc64-pmap-rework/pseries/phyp_vscsi.c
Directory Properties:
  user/nwhitehorn/ppc64-pmap-rework/   (props changed)

Modified: user/nwhitehorn/ppc64-pmap-rework/pseries/phyp_vscsi.c
==============================================================================
--- user/nwhitehorn/ppc64-pmap-rework/pseries/phyp_vscsi.c	Tue Feb 24 13:07:31 2015	(r279237)
+++ user/nwhitehorn/ppc64-pmap-rework/pseries/phyp_vscsi.c	Tue Feb 24 15:07:09 2015	(r279238)
@@ -931,10 +931,11 @@ vscsi_check_response_queue(struct vscsi_
 
 	mtx_assert(&sc->io_lock, MA_OWNED);
 
-	phyp_hcall(H_VIO_SIGNAL, sc->unit, 0);
-	bus_dmamap_sync(sc->crq_tag, sc->crq_map, BUS_DMASYNC_POSTREAD);
-
 	while (sc->crq_queue[sc->cur_crq].valid != 0) {
+		/* The hypercalls at both ends of this are not optimal */
+		phyp_hcall(H_VIO_SIGNAL, sc->unit, 0);
+		bus_dmamap_sync(sc->crq_tag, sc->crq_map, BUS_DMASYNC_POSTREAD);
+
 		crq = &sc->crq_queue[sc->cur_crq];
 
 		switch (crq->valid) {
@@ -983,9 +984,9 @@ vscsi_check_response_queue(struct vscsi_
 
 		crq->valid = 0;
 		sc->cur_crq = (sc->cur_crq + 1) % sc->n_crqs;
-	};
 
-	bus_dmamap_sync(sc->crq_tag, sc->crq_map, BUS_DMASYNC_PREWRITE);
-	phyp_hcall(H_VIO_SIGNAL, sc->unit, 1);
+		bus_dmamap_sync(sc->crq_tag, sc->crq_map, BUS_DMASYNC_PREWRITE);
+		phyp_hcall(H_VIO_SIGNAL, sc->unit, 1);
+	}
 }
 


More information about the svn-src-user mailing list