PERFORCE change 170437 for review

View: New views
1 Messages — Rating Filter:   Alert me  

PERFORCE change 170437 for review

by Alexander Motin-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

http://p4web.freebsd.org/chv.cgi?CH=170437

Change 170437 by mav@mav_mavbook on 2009/11/10 12:39:55

        Move xpt_schedule_dev_sendq() from header to source file.
        Move delayed queue shrinking to more logical place - when queue freed.

Affected files ...

.. //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#122 edit
.. //depot/projects/scottl-camlock/src/sys/cam/cam_xpt_internal.h#13 edit

Differences ...

==== //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#122 (text+ko) ====

@@ -299,12 +299,6 @@
  int retval;
 
  if (dev->ccbq.devq_openings > 0) {
- if ((dev->flags & CAM_DEV_RESIZE_QUEUE_NEEDED) != 0) {
- cam_ccbq_resize(&dev->ccbq,
- dev->ccbq.dev_openings
- + dev->ccbq.dev_active);
- dev->flags &= ~CAM_DEV_RESIZE_QUEUE_NEEDED;
- }
  /*
  * The priority of a device waiting for CCB resources
  * is that of the the highest priority peripheral driver
@@ -321,6 +315,27 @@
 }
 
 static __inline int
+xpt_schedule_dev_sendq(struct cam_eb *bus, struct cam_ed *dev)
+{
+ int retval;
+
+ if (dev->ccbq.dev_openings > 0) {
+ /*
+ * The priority of a device waiting for controller
+ * resources is that of the the highest priority CCB
+ * enqueued.
+ */
+ retval =
+    xpt_schedule_dev(&bus->sim->devq->send_queue,
+     &dev->send_ccb_entry.pinfo,
+     CAMQ_GET_HEAD(&dev->ccbq.queue)->priority);
+ } else {
+ retval = 0;
+ }
+ return (retval);
+}
+
+static __inline int
 periph_is_queued(struct cam_periph *periph)
 {
  return (periph->pinfo.index != CAM_UNQUEUED_INDEX);
@@ -3747,6 +3762,11 @@
  mtx_assert(sim->mtx, MA_OWNED);
 
  cam_ccbq_release_opening(&device->ccbq);
+ if (device->flags & CAM_DEV_RESIZE_QUEUE_NEEDED) {
+ device->flags &= ~CAM_DEV_RESIZE_QUEUE_NEEDED;
+ cam_ccbq_resize(&device->ccbq,
+    device->ccbq.dev_openings + device->ccbq.dev_active);
+ }
  if (sim->ccb_count > sim->max_ccbs) {
  xpt_free_ccb(free_ccb);
  sim->ccb_count--;

==== //depot/projects/scottl-camlock/src/sys/cam/cam_xpt_internal.h#13 (text+ko) ====

@@ -177,29 +177,6 @@
  u_int32_t new_priority);
 u_int32_t xpt_dev_ccbq_resize(struct cam_path *path, int newopenings);
 
-
-
-static __inline int
-xpt_schedule_dev_sendq(struct cam_eb *bus, struct cam_ed *dev)
-{
- int retval;
-
- if (dev->ccbq.dev_openings > 0) {
- /*
- * The priority of a device waiting for controller
- * resources is that of the the highest priority CCB
- * enqueued.
- */
- retval =
-    xpt_schedule_dev(&bus->sim->devq->send_queue,
-     &dev->send_ccb_entry.pinfo,
-     CAMQ_GET_HEAD(&dev->ccbq.queue)->priority);
- } else {
- retval = 0;
- }
- return (retval);
-}
-
 MALLOC_DECLARE(M_CAMXPT);
 
 #endif
_______________________________________________
p4-projects@... mailing list
http://lists.freebsd.org/mailman/listinfo/p4-projects
To unsubscribe, send any mail to "p4-projects-unsubscribe@..."