All of lore.kernel.org
 help / color / mirror / Atom feed
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).

  reply	other threads:[~2021-12-07 16:35 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 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.