lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4F88C5DDA1E80143B232E89585ACE27D018F41EC@DGGEMA502-MBX.china.huawei.com>
Date:   Tue, 29 Aug 2017 07:44:09 +0000
From:   "liujian (CE)" <liujian56@...wei.com>
To:     Jesper Dangaard Brouer <brouer@...hat.com>,
        Florian Westphal <fw@...len.de>
CC:     "davem@...emloft.net" <davem@...emloft.net>,
        "kuznet@....inr.ac.ru" <kuznet@....inr.ac.ru>,
        "yoshfuji@...ux-ipv6.org" <yoshfuji@...ux-ipv6.org>,
        "elena.reshetova@...el.com" <elena.reshetova@...el.com>,
        "edumazet@...gle.com" <edumazet@...gle.com>,
        "netdev@...r.kernel.org" <netdev@...r.kernel.org>,
        "Wangkefeng (Kevin)" <wangkefeng.wang@...wei.com>,
        "weiyongjun (A)" <weiyongjun1@...wei.com>
Subject: RE: Question about ip_defrag


> -----Original Message-----
> From: Jesper Dangaard Brouer [mailto:brouer@...hat.com]
> Sent: Tuesday, August 29, 2017 3:20 PM
> To: Florian Westphal
> Cc: liujian (CE); davem@...emloft.net; kuznet@....inr.ac.ru;
> yoshfuji@...ux-ipv6.org; elena.reshetova@...el.com; edumazet@...gle.com;
> netdev@...r.kernel.org; Wangkefeng (Kevin); weiyongjun (A);
> brouer@...hat.com
> Subject: Re: Question about ip_defrag
> 
> On Mon, 28 Aug 2017 16:00:32 +0200
> Florian Westphal <fw@...len.de> wrote:
> 
> > liujian (CE) <liujian56@...wei.com> wrote:
> > > Hi
> > >
> > > I checked our 3.10 kernel, we had backported all percpu_counter bug fix in
> lib/percpu_counter.c and include/linux/percpu_counter.h.
> > > And I check 4.13-rc6, also has the issue if NIC's rx cpu num big enough.
> > >
> > > > > > > the issue:
> > > > > > > Ip_defrag fail caused by frag_mem_limit reached
> 4M(frags.high_thresh).
> > > > > > > At this moment,sum_frag_mem_limit is about 10K.
> > >
> > > So should we change ipfrag high/low thresh to a reasonable value ?
> > > And if it is, is there a standard to change the value?
> >
> > Each cpu can have frag_percpu_counter_batch bytes rest doesn't know
> > about so with 64 cpus that is ~8 mbyte.
> >
> > possible solutions:
> > 1. reduce frag_percpu_counter_batch to 16k or so 2. make both low and
> > high thresh depend on NR_CPUS
> 
> To me it looks like we/I have been using the wrong API for comparing against
> percpu_counters.  I guess we should have used
> __percpu_counter_compare().

Are you means?
Change 
if (frag_mem_limit(nf) > nf->low_thresh)
to
__percpu_counter_compare(&nf->mem, nf->low_thresh, frag_percpu_counter_batch)

> /*
>  * Compare counter against given value.
>  * Return 1 if greater, 0 if equal and -1 if less  */ int
> __percpu_counter_compare(struct percpu_counter *fbc, s64 rhs, s32 batch) {
> 	s64	count;
> 
> 	count = percpu_counter_read(fbc);
> 	/* Check to see if rough count will be sufficient for comparison */
> 	if (abs(count - rhs) > (batch * num_online_cpus())) {
> 		if (count > rhs)
> 			return 1;
> 		else
> 			return -1;
> 	}
> 	/* Need to use precise count */
> 	count = percpu_counter_sum(fbc);
> 	if (count > rhs)
> 		return 1;
> 	else if (count < rhs)
> 		return -1;
> 	else
> 		return 0;
> }
> EXPORT_SYMBOL(__percpu_counter_compare);
> 
> 
> --
> Best regards,
>   Jesper Dangaard Brouer
>   MSc.CS, Principal Kernel Engineer at Red Hat
>   LinkedIn: http://www.linkedin.com/in/brouer

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ