On Wed, Nov 29, 2023 at 3:03 PM Jason Gunthorpe [off-list ref] wrote:
On Wed, Nov 29, 2023 at 02:45:03PM -0500, Pasha Tatashin wrote:
quoted
quoted
same kind of big systems where IOMMU pagetables would be of any concern.
I believe some of the some of the "serious" NICs can easily run up
hundreds of megabytes if not gigabytes worth of queues, SKB pools, etc.
- would you propose accounting those too?
Yes. Any kind of kernel memory that is proportional to the workload
should be accountable. Someone is using those resources compared to
the idling system, and that someone should be charged.
There is a difference between charged and accounted
You should be running around adding GFP_KERNEL_ACCOUNT, yes. I already
did a bunch of that work. Split that out from this series and send it
to the right maintainers.
I will do that.
Adding a counter for allocations and showing in procfs is a very
different question. IMHO that should not be done in micro, the
threshold to add a new counter should be high.
I agree, /proc/meminfo, should not include everything, however overall
network consumption that includes memory allocated by network driver
would be useful to have, may be it should be exported by device
drivers and added to the protocol memory. We already have network
protocol memory consumption in procfs:
# awk '{printf "%-10s %s\n", $1, $4}' /proc/net/protocols | grep -v '\-1'
protocol memory
UDPv6 22673
TCPv6 16961
There is definately room for a generic debugging feature to break down
GFP_KERNEL_ACCOUNT by owernship somehow. Maybe it can already be done
with BPF. IDK