From: Justin Iurman <justin.iurman@uliege.be>
To: Jakub Kicinski <kuba@kernel.org>
Cc: netdev@vger.kernel.org, davem@davemloft.net, dsahern@kernel.org,
yoshfuji@linux-ipv6.org, linux-mm@kvack.org, cl@linux.com,
penberg@kernel.org, rientjes@google.com,
iamjoonsoo kim <iamjoonsoo.kim@lge.com>,
akpm@linux-foundation.org, vbabka@suse.cz
Subject: Re: [RFC net-next 2/2] ipv6: ioam: Support for Buffer occupancy data field
Date: Tue, 7 Dec 2021 17:35:49 +0100 (CET) [thread overview]
Message-ID: <1045511371.220520131.1638894949373.JavaMail.zimbra@uliege.be> (raw)
In-Reply-To: <20211207075037.6cda8832@kicinski-fedora-pc1c0hjn.dhcp.thefacebook.com>
On Dec 7, 2021, at 4:50 PM, Jakub Kicinski kuba@kernel.org wrote:
> On Tue, 7 Dec 2021 12:54:04 +0100 (CET) Justin Iurman wrote:
>> >> The function kmem_cache_size is used to retrieve the size of a slab
>> >> object. Note that it returns the "object_size" field, not the "size"
>> >> field. If needed, a new function (e.g., kmem_cache_full_size) could be
>> >> added to return the "size" field. To match the definition from the
>> >> draft, the number of bytes is computed as follows:
>> >>
>> >> slabinfo.active_objs * size
>> >
>> > Implementing the standard is one thing but how useful is this
>> > in practice?
>>
>> IMHO, very useful. To be honest, if I were to implement only a few data
>> fields, these two would be both included. Take the example of CLT [1]
>> where the queue length data field is used to detect low-level issues
>> from inside a L5-7 distributed tracing tool. And this is just one
>> example among many others. The queue length data field is very specific
>> to TX queues, but we could also use the buffer occupancy data field to
>> detect more global loads on a node. Actually, the goal for operators
>> running their IOAM domain is to quickly detect a problem along a path
>> and react accordingly (human or automatic action). For example, if you
>> monitor TX queues along a path and detect an increasing queue on a
>> router, you could choose to, e.g., rebalance its queues. With the
>> buffer occupancy, you could detect high-loaded nodes in general and,
>> e.g., rebalance traffic to another branch. Again, this is just one
>> example among others. Apart from more accurate ECMPs, you could for
>> instance deploy a smart (micro)service selection based on different
>> metrics, etc.
>>
>> [1] https://github.com/Advanced-Observability/cross-layer-telemetry
>
> Ack, my question was more about whether the metric as implemented
Oh, sorry about that.
> provides the best signal. Since the slab cache scales dynamically
> (AFAIU) it's not really a big deal if it's full as long as there's
> memory available on the system.
Well, I got the same understanding as you. However, we do not provide a
value meaning "X percent used" just because it wouldn't make much sense,
as you pointed out. So I think it is sound to have the current value,
even if it's a quite dynamic one. Indeed, what's important here is to
know how many bytes are used and this is exactly what it does. If a node
is under heavy load, the value would be hell high. The operator could
define a threshold for each node resp. and detect abnormal values.
We probably want the metadata included for accuracy as well (e.g.,
kmem_cache_size vs new function kmem_cache_full_size).
next prev parent reply other threads:[~2021-12-07 16:36 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-06 21:17 [RFC net-next 0/2] IOAM queue depth and buffer occupancy Justin Iurman
2021-12-06 21:17 ` [RFC net-next 1/2] ipv6: ioam: Support for Queue depth data field Justin Iurman
2021-12-06 21:17 ` [RFC net-next 2/2] ipv6: ioam: Support for Buffer occupancy " Justin Iurman
2021-12-07 0:16 ` Jakub Kicinski
2021-12-07 11:54 ` Justin Iurman
2021-12-07 15:50 ` Jakub Kicinski
2021-12-07 16:35 ` Justin Iurman [this message]
2021-12-07 17:07 ` Jakub Kicinski
2021-12-07 18:05 ` Justin Iurman
2021-12-08 22:18 ` Jakub Kicinski
2021-12-09 14:10 ` Justin Iurman
2021-12-10 0:38 ` Jakub Kicinski
2021-12-10 12:57 ` Justin Iurman
2021-12-21 17:06 ` Justin Iurman
2021-12-21 17:23 ` Vladimir Oltean
2021-12-21 20:13 ` Jakub Kicinski
2021-12-22 16:13 ` Justin Iurman
2021-12-22 15:49 ` Justin Iurman
2021-12-07 16:37 ` David Ahern
2021-12-07 16:54 ` Justin Iurman
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=1045511371.220520131.1638894949373.JavaMail.zimbra@uliege.be \
--to=justin.iurman@uliege.be \
--cc=akpm@linux-foundation.org \
--cc=cl@linux.com \
--cc=davem@davemloft.net \
--cc=dsahern@kernel.org \
--cc=iamjoonsoo.kim@lge.com \
--cc=kuba@kernel.org \
--cc=linux-mm@kvack.org \
--cc=netdev@vger.kernel.org \
--cc=penberg@kernel.org \
--cc=rientjes@google.com \
--cc=vbabka@suse.cz \
--cc=yoshfuji@linux-ipv6.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox