mailing list of musl libc
 help / color / mirror / code / Atom feed
From: Rich Felker <dalias@aerifal.cx>
To: musl@lists.openwall.com
Subject: Re: Weekly reports: A
Date: Mon, 23 May 2011 21:13:20 -0400	[thread overview]
Message-ID: <20110524011320.GV277@brightrain.aerifal.cx> (raw)
In-Reply-To: <20110524010029.GA11834@openwall.com>

On Tue, May 24, 2011 at 05:00:29AM +0400, Solar Designer wrote:
> Luka, Rich -
> 
> On Mon, May 23, 2011 at 07:42:38PM +0200, Luka Mar??eti?? wrote:
> > average, I expect to complete one task Rich described at 
> > http://openwall.info/wiki/musl/unit-tests?s=libc per each report. I'll 
> > start with nr. 1 (though there is nr. 0), as it allows me to correct and 
> > complete the proof-of-skill test I've written earlier.
> 
> (There are 13 test categories currently listed on the wiki page.)
> 
> Sounds fine to me.  I assume that you'll also proceed to wrap those
> tests into a framework once you have a few initial tests implemented.

Yes, I'd like him to get some more tests working first though. A good
design for the framework should become more apparent when you have
tests to try integrating.

> For "String operations testing" with "giant buffers (more than 2gb/4gb,
> only possible on 64-bit machines)" (part of task nr. 1 that you intend
> to work on now), you may consider having this test run on systems that
> don't have this much virtual memory (but are 64-bit capable).  You may
> achieve this by mmap()'ing the same pages many times.  When I needed a
> large continuous pseudo-allocation like that to explore/exploit some
> Linux kernel issues, I was able to allocate something like 190 GB (if I
> recall correctly) on an Alpha with 128 MB RAM (that was in 1999, before
> we got x86-64).  (The kernel would spend 25 minutes parsing that data.)

Another option is using a giant file. Even if you don't want to take
that approach, you could start with a giant sparse file to mmap in
order to allocate the virtual address space, then mmap over top of it
with the MAP_FIXED option to achieve the above.

> Oh, it's also useful to test buffer sizes close to 2 GB and slightly
> over 2 GB on 32-bit systems that are capable of such allocations.

musl's malloc refuses to allocate >2gb on 32-bit systems to avoid the
ptrdiff_t overflow issue, but mmap could still potentially create such
large objects.

> For "low and high byte content", I suggest that you include ability to
> test all byte values (for non-wide chars).  glibc and many other libc's
> include implementations of string functions that use adds/bitmasks;
> these might contain bugs that only show up with specific byte values in
> specific character positions when the libc is built for specific CPUs.

I agree. I don't believe any such issues affect the current C
implementations in musl, but it would be nice to have the tests in
place in case anyone wants to add arch-specific asm versions.

> These are just some suggestions, which Rich might override. ;-)

They sound very good to me.

Rich


  reply	other threads:[~2011-05-24  1:13 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-23 17:42 Luka Marčetić
2011-05-24  1:00 ` Solar Designer
2011-05-24  1:13   ` Rich Felker [this message]
2011-05-28  0:37     ` Luka Marčetić
2011-05-28  2:02       ` Rich Felker

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=20110524011320.GV277@brightrain.aerifal.cx \
    --to=dalias@aerifal.cx \
    --cc=musl@lists.openwall.com \
    /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.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/musl/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).