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: <20131121165237.GG16208@redhat.com>
Date:	Thu, 21 Nov 2013 11:52:37 -0500
From:	Vivek Goyal <vgoyal@...hat.com>
To:	HATAYAMA Daisuke <d.hatayama@...fujitsu.com>
Cc:	Atsushi Kumagai <kumagai-atsushi@....nes.nec.co.jp>,
	"bhe@...hat.com" <bhe@...hat.com>,
	"kexec@...ts.infradead.org" <kexec@...ts.infradead.org>,
	"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
	"ebiederm@...ssion.com" <ebiederm@...ssion.com>,
	"dyoung@...hat.com" <dyoung@...hat.com>,
	"chaowang@...hat.com" <chaowang@...hat.com>
Subject: Re: /proc/vmcore mmap() failure issue

On Thu, Nov 21, 2013 at 05:31:46PM +0900, HATAYAMA Daisuke wrote:

[..]
> > So I think the patch I sent is enough, the policy will be simpler as
> > "Don't use mmap() for buggy kernels".
> > 
> > [PATCH] Fall back to read() when mmap() fails.
> > http://lists.infradead.org/pipermail/kexec/2013-November/010199.html
> > 
> 
> I think logic becomes not so complex. For example, if input vmcore
> format is ELF, then:
> 
> o in update_mmap_range():
>   - first calculate a range of the corresponding PT_LOAD entry truncated with
>     PAGE_SIZE.
>   - Then, truncate range of mmap() by the truncated range of the corresponding
>     PT_LOAD entry, i.e., exlucde partial pages from mmap() target range.
>   - Then determine offsets of two partial pages; the number of partial pages
>     are always at most two. The offsets can easily be calculated from the
>     original range of the corresponding PT_LOAD entry
> 
> o in read_from_vmcore(), if a given offset belongs to either of two partial
>   pages, then go to read() path; if not, go to mmap() path.

I agree that we should do mmap() on all non-partial pages and do read()
on all partial pages. Otherwise we lose the benefit of faster speed of
mmap().

Thanks
Vivek
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ