On Thu, 2015-02-12 at 08:48 +0100, Michal Kazior wrote:
quoted
Good point. I was actually thinking about it. I can try cooking a
patch unless you want to do it yourself :-)
I've taken a look into this. The most obvious place to add the
timestamp for each packet would be ieee80211_tx_info (i.e. the
skb->cb[48]). The problem is it's very tight there. Even squeezing 2
bytes (allowing up to 64ms of tx completion delay which I'm worried
won't be enough) will be troublesome. Some drivers already use every
last byte of their allowance on 64bit archs (e.g. ar5523 uses entire
40 bytes of driver_data).
Couldn't we just repurpose the existing skb->tstamp field for this, as
long as the skb is fully contained within the wireless layer?
Actually, it looks like we can't, since I guess timestamping options can
be turned on on any socket.
I wonder if it's okay to bump skb->cb to 56 bytes to avoid the cascade
of changes required to implement the tx completion delay accounting?
I have no doubt that would be rejected :)
johannes
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tue, 2015-02-24 at 11:24 +0100, Johannes Berg wrote:
On Thu, 2015-02-12 at 08:48 +0100, Michal Kazior wrote:
quoted
quoted
Good point. I was actually thinking about it. I can try cooking a
patch unless you want to do it yourself :-)
I've taken a look into this. The most obvious place to add the
timestamp for each packet would be ieee80211_tx_info (i.e. the
skb->cb[48]). The problem is it's very tight there. Even squeezing 2
bytes (allowing up to 64ms of tx completion delay which I'm worried
won't be enough) will be troublesome. Some drivers already use every
last byte of their allowance on 64bit archs (e.g. ar5523 uses entire
40 bytes of driver_data).
Couldn't we just repurpose the existing skb->tstamp field for this, as
long as the skb is fully contained within the wireless layer?
Actually, it looks like we can't, since I guess timestamping options can
be turned on on any socket.
Actually, that creates a clone or a new skb? Hmm.
Anyway, I think we should just move the vif and hw_key pointers out of
the tx_info and into ieee80211_tx_control. That will give us plenty of
space, and they can't really be used long-term anyway? Although ... both
might be somewhat problematic for mac80211 itself? Hmm.
johannes
On Tue, 2015-02-24 at 11:30 +0100, Johannes Berg wrote:
On Tue, 2015-02-24 at 11:24 +0100, Johannes Berg wrote:
quoted
On Thu, 2015-02-12 at 08:48 +0100, Michal Kazior wrote:
quoted
quoted
Good point. I was actually thinking about it. I can try cooking a
patch unless you want to do it yourself :-)
I've taken a look into this. The most obvious place to add the
timestamp for each packet would be ieee80211_tx_info (i.e. the
skb->cb[48]). The problem is it's very tight there. Even squeezing 2
bytes (allowing up to 64ms of tx completion delay which I'm worried
won't be enough) will be troublesome. Some drivers already use every
last byte of their allowance on 64bit archs (e.g. ar5523 uses entire
40 bytes of driver_data).
Couldn't we just repurpose the existing skb->tstamp field for this, as
long as the skb is fully contained within the wireless layer?
Actually, it looks like we can't, since I guess timestamping options can
be turned on on any socket.
Actually, that creates a clone or a new skb? Hmm.
Ah and then it puts it on the error queue right away, so I think we can
reuse it.
johannes