From: Johannes Berg <johannes@sipsolutions.net>
To: Sriram R <srirrama@codeaurora.org>
Cc: linux-wireless@vger.kernel.org
Subject: Re: [RFCv2 2/2] mac80211: Add support for per-rate rx statistics
Date: Tue, 28 Aug 2018 11:00:18 +0200 [thread overview]
Message-ID: <1535446818.5895.15.camel@sipsolutions.net> (raw)
In-Reply-To: <655af9bf3136aefda93b137f80b9e726@codeaurora.org>
Hi,
Sorry for the late reply, my work hours are limited right now.
> I wanted to give a try with rhashtable and get your thoughts, since it
> gave below flexibility to original patch,
> 1. avoids creating static memory when userspace starts accumulating
> stats. 36 rate entries were used in original patch based on 10 (MCS
> count) * 3 (entries per mcs)+ 6 escape entries, which would also
> increase with HE supported now.
True, but rhashtable also has very significant overhead. I suspect it's
around the same order of magnitude as the allocation you need to keep
all the 36 entries?
struct rhashtable is probably already ~120 bytes on 64-bit systems (very
rough counting), and a single bucket table is >64, so you already have
close to 200 bytes for just the basic structures, without *any* entries.
And a significant amount of code too.
36 rate entries could probably be kept - I don't think you really need
to go more than that since you're not going to switch HT/VHT/HE all the
time, so that's only about 360 bytes total. You haven't gained much, but
made it much more complex, doing much more allocations (create
new/destroy old entries) etc.
I don't really see much value in that.
> 2. avoids restricting to only 3 entries per MCS in the table. Using
> hashtable gave flexibility to add/read the table dynamically based on
> encoded rate key.
Yes but if you don't limit, you end up with run-away memory consumption
again.
> Yes you're right ,it might grow but, as per this patch when Packet count
> is greater
> than 65000 in an exntry or when the number of rate table/hashtable
> entries exceed a count of MAX_RATE_TABLE_ELEMS (10 was used in this
> patch), the complete table is dumped to userspace and new stats starts
> getting collected in a new table after we flush the old one.
> Hence with this approach also the memory consumption is limited similar
> to the original patch.
Right, so you limit to 10 entries, which is a total of
~120 + ~72 + 10 x (10 /* data */ + 3*8) = 524
in 12 different allocations. I don't think that's going to be much
better, and you seemed to think that the 10 would be commonly hit
(otherwise having a relatively small limit of 36 shouldn't be an issue)
So - I don't really see any advantage here, do you?
johannes
next prev parent reply other threads:[~2018-08-28 12:51 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-05-28 13:34 [RFCv2 0/2] nl80211/mac80211 Add support for per-rate rx statistics Sriram R
2018-05-28 13:34 ` [RFCv2 1/2] nl80211: support per-rate/per-station statistics Sriram R
2018-06-15 12:19 ` Johannes Berg
2018-08-12 2:07 ` Sriram R
2018-05-28 13:34 ` [RFCv2 2/2] mac80211: Add support for per-rate rx statistics Sriram R
2018-06-15 12:25 ` Johannes Berg
2018-08-12 2:44 ` Sriram R
2018-08-28 9:00 ` Johannes Berg [this message]
2018-08-29 14:07 ` Sriram R
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1535446818.5895.15.camel@sipsolutions.net \
--to=johannes@sipsolutions.net \
--cc=linux-wireless@vger.kernel.org \
--cc=srirrama@codeaurora.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.