Print this page
OS-7088 cyclics corked on overlay socket with full queue


  80         uint_t                  ott_ocount;     /* ott_lock */
  81         union {                                 /* ott_lock */
  82                 overlay_target_point_t  ott_point;
  83                 struct overlay_target_dyn {
  84                         refhash_t       *ott_dhash;
  85                         avl_tree_t      ott_tree;
  86                 } ott_dyn;
  87         } ott_u;
  88 } overlay_target_t;
  89 
  90 typedef enum overlay_dev_flag {
  91         OVERLAY_F_ACTIVATED     = 0x01, /* Activate ioctl completed */
  92         OVERLAY_F_IN_MUX        = 0x02, /* Currently in a mux */
  93         OVERLAY_F_IN_TX         = 0x04, /* Currently doing tx */
  94         OVERLAY_F_IN_RX         = 0x08, /* Currently doing rx */
  95         OVERLAY_F_IOMASK        = 0x0c, /* A mask for rx and tx */
  96         OVERLAY_F_MDDROP        = 0x10, /* Drop traffic for metadata update */
  97         OVERLAY_F_STOPMASK      = 0x1e, /* None set when stopping */
  98         OVERLAY_F_VARPD         = 0x20, /* varpd plugin exists */
  99         OVERLAY_F_DEGRADED      = 0x40, /* device is degraded */
 100         OVERLAY_F_MASK          = 0x7f  /* mask of everything */

 101 } overlay_dev_flag_t;
 102 
 103 typedef struct overlay_dev {
 104         kmutex_t        odd_lock;
 105         kcondvar_t      odd_iowait;
 106         list_node_t     odd_link;               /* overlay_dev_lock */
 107         mac_handle_t    odd_mh;                 /* RO */
 108         overlay_plugin_t *odd_plugin;           /* RO */
 109         datalink_id_t   odd_linkid;             /* RO */
 110         void            *odd_pvoid;             /* RO -- only used by plugin */
 111         uint_t          odd_ref;                /* protected by odd_lock */
 112         uint_t          odd_mtu;                /* protected by odd_lock */
 113         overlay_dev_flag_t odd_flags;           /* protected by odd_lock */
 114         uint_t          odd_rxcount;            /* protected by odd_lock */
 115         uint_t          odd_txcount;            /* protected by odd_lock */
 116         overlay_mux_t   *odd_mux;               /* protected by odd_lock */
 117         uint64_t        odd_vid;                /* RO if active else odd_lock */
 118         avl_node_t      odd_muxnode;            /* managed by mux */
 119         overlay_target_t *odd_target;           /* See big theory statement */
 120         char            odd_fmamsg[OVERLAY_STATUS_BUFLEN];      /* odd_lock */




  80         uint_t                  ott_ocount;     /* ott_lock */
  81         union {                                 /* ott_lock */
  82                 overlay_target_point_t  ott_point;
  83                 struct overlay_target_dyn {
  84                         refhash_t       *ott_dhash;
  85                         avl_tree_t      ott_tree;
  86                 } ott_dyn;
  87         } ott_u;
  88 } overlay_target_t;
  89 
  90 typedef enum overlay_dev_flag {
  91         OVERLAY_F_ACTIVATED     = 0x01, /* Activate ioctl completed */
  92         OVERLAY_F_IN_MUX        = 0x02, /* Currently in a mux */
  93         OVERLAY_F_IN_TX         = 0x04, /* Currently doing tx */
  94         OVERLAY_F_IN_RX         = 0x08, /* Currently doing rx */
  95         OVERLAY_F_IOMASK        = 0x0c, /* A mask for rx and tx */
  96         OVERLAY_F_MDDROP        = 0x10, /* Drop traffic for metadata update */
  97         OVERLAY_F_STOPMASK      = 0x1e, /* None set when stopping */
  98         OVERLAY_F_VARPD         = 0x20, /* varpd plugin exists */
  99         OVERLAY_F_DEGRADED      = 0x40, /* device is degraded */
 100         OVERLAY_F_TXSTOPPED     = 0x80, /* device needs max_tx_update */
 101         OVERLAY_F_MASK          = 0xff  /* mask of everything */
 102 } overlay_dev_flag_t;
 103 
 104 typedef struct overlay_dev {
 105         kmutex_t        odd_lock;
 106         kcondvar_t      odd_iowait;
 107         list_node_t     odd_link;               /* overlay_dev_lock */
 108         mac_handle_t    odd_mh;                 /* RO */
 109         overlay_plugin_t *odd_plugin;           /* RO */
 110         datalink_id_t   odd_linkid;             /* RO */
 111         void            *odd_pvoid;             /* RO -- only used by plugin */
 112         uint_t          odd_ref;                /* protected by odd_lock */
 113         uint_t          odd_mtu;                /* protected by odd_lock */
 114         overlay_dev_flag_t odd_flags;           /* protected by odd_lock */
 115         uint_t          odd_rxcount;            /* protected by odd_lock */
 116         uint_t          odd_txcount;            /* protected by odd_lock */
 117         overlay_mux_t   *odd_mux;               /* protected by odd_lock */
 118         uint64_t        odd_vid;                /* RO if active else odd_lock */
 119         avl_node_t      odd_muxnode;            /* managed by mux */
 120         overlay_target_t *odd_target;           /* See big theory statement */
 121         char            odd_fmamsg[OVERLAY_STATUS_BUFLEN];      /* odd_lock */