Messages in this thread | | | Subject | Re: Problem in pfmemalloc skb handling in net/core/dev.c | From | Eric Dumazet <> | Date | Fri, 9 Apr 2021 13:50:15 +0200 |
| |
On 4/9/21 12:14 PM, Xie He wrote: > On Fri, Apr 9, 2021 at 3:04 AM Eric Dumazet <eric.dumazet@gmail.com> wrote: >> >> Note that pfmemalloc skbs are normally dropped in sk_filter_trim_cap() >> >> Simply make sure your protocol use it. > > It seems "sk_filter_trim_cap" needs an "struct sock" argument. Some of > my protocols act like a middle layer to another protocol and don't > have any "struct sock".
Then simply copy the needed logic.
> > Also, I think this is a problem in net/core/dev.c, there are a lot of > old protocols that are not aware of pfmemalloc skbs. I don't think > it's a good idea to fix them one by one. >
I think you are mistaken.
There is no problem in net/core/dev.c really, it uses skb_pfmemalloc_protocol()
pfmemalloc is best effort really.
If a layer store packets in many long living queues, it has to drop pfmemalloc packets, unless these packets are used for swapping.
| |