Commit 69088822 authored by Sowmini Varadhan's avatar Sowmini Varadhan Committed by David S. Miller

sunvnet: NAPIfy sunvnet

Move Rx packet procssing to the NAPI poll callback.
Disable VIO interrupt and unconditioanlly go into NAPI
context from vnet_event.

Note that we want to minimize the number of LDC
STOP/START messages sent. Specifically, do not send a STOP
message if vnet_walk_rx does not read all the available descriptors
because of the NAPI budget limitation. Instead, note the end index
as part of port state, and resume from this index when the
next poll callback is triggered.
Signed-off-by: default avatarSowmini Varadhan <sowmini.varadhan@oracle.com>
Acked-by: default avatarRaghuram Kothakota <raghuram.kothakota@oracle.com>
Acked-by: default avatarDwight Engen <dwight.engen@oracle.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 132fb579
This diff is collapsed.
...@@ -56,6 +56,11 @@ struct vnet_port { ...@@ -56,6 +56,11 @@ struct vnet_port {
struct timer_list clean_timer; struct timer_list clean_timer;
u64 rmtu; u64 rmtu;
struct napi_struct napi;
u32 napi_stop_idx;
bool napi_resume;
int rx_event;
}; };
static inline struct vnet_port *to_vnet_port(struct vio_driver_state *vio) static inline struct vnet_port *to_vnet_port(struct vio_driver_state *vio)
...@@ -97,7 +102,6 @@ struct vnet { ...@@ -97,7 +102,6 @@ struct vnet {
struct list_head list; struct list_head list;
u64 local_mac; u64 local_mac;
struct tasklet_struct vnet_tx_wakeup;
}; };
#endif /* _SUNVNET_H */ #endif /* _SUNVNET_H */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment