Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
| From | Robert Wessel <robertwessel2@yahoo.com> |
|---|---|
| Newsgroups | comp.lang.c, comp.lang.c++ |
| Subject | Re: malloc |
| Message-ID | <lv8uj7thmqon4afplff7f52i6vb5ogjsp9@4ax.com> (permalink) |
| References | (4 earlier) <ln62f5g3h8.fsf@nuthaus.mib.org> <189309be-7354-48eb-87e3-c2ccb34c1770@t2g2000yqk.googlegroups.com> <ln1uptfk3k.fsf@nuthaus.mib.org> <af88e224-88be-4dd3-b702-7e8ea50b70b9@n8g2000pbc.googlegroups.com> <OyE%q.31799$pC1.21382@news.usenetserver.com> |
| Organization | Forte Inc. http://www.forteinc.com/apn/ |
| Date | 2012-02-17 22:15 -0600 |
Cross-posted to 2 groups.
On 18 Feb 2012 03:04:14 GMT, scott@slp53.sl.home (Scott Lurndal) wrote: >Joshua Maurice <joshuamaurice@gmail.com> writes: >>On Feb 17, 9:25=A0am, Keith Thompson <ks...@mib.org> wrote: >>> If you call malloc() and it overcommits, it won't crash the >>> program until you access the allocated memory. =A0(The rationale for >>> overcommitting is that most programs don't actually use most of >>> the memory the memory the allocate. =A0I find that odd) >> >>Really? The explanation that I'm most familiar with is that most fork >>calls are immediately followed by exec, and thus if you're low on >>memory, then a large process cannot spawn a new process without >>overcommit because the only process create primitive is fork, which >>"copies" the memory space of the parent process. > >You're confusing overcommit with copy-on-write. Fork uses COW[*] in >which the parent and child share the physical pages until the child >writes to one - at that point, they child gets a copy (and an allocation >occurs which may fail at that point if memory and swap are exhausted). > >Overcommit was allowed to support sparse arrays which are common >with some workloads. I don't think there's much daylight between the two. In both cases a process has been implicitly allocated virtual pages, without (necessarily) the presence of enough actual pages (real and/or disk) to make good on that allocation, and the system can fail in the future when the application does something apparently innocuous, like try to write to a page it appears to have been allocated. And while I'm not familiar with the implementation of all over-commit schemes, at least a couple I've seen actually map all allocated pages to a read-only pages full of zeros, and then use the COW mechanism to allocate actual pages when they're written to. This has the advantage of not requiring a second mechanism, and possibly further delaying the actual allocation (as an ordinary read does not trigger it).
Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
malloc jgk@panix.com (Joe keane) - 2012-02-16 21:04 +0000
Re: malloc Devil with the China Blue Dress <chine.bleu@yahoo.com> - 2012-02-16 13:21 -0800
Re: malloc BGB <cr88192@hotmail.com> - 2012-02-16 16:16 -0700
Re: malloc Paavo Helde <myfirstname@osa.pri.ee> - 2012-02-17 14:46 -0600
Re: malloc Joshua Maurice <joshuamaurice@gmail.com> - 2012-02-17 14:51 -0800
Re: malloc BGB <cr88192@hotmail.com> - 2012-02-17 19:58 -0700
Re: malloc Paavo Helde <myfirstname@osa.pri.ee> - 2012-02-18 02:18 -0600
Re: malloc BGB <cr88192@hotmail.com> - 2012-02-18 01:58 -0700
Re: malloc glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2012-02-18 15:30 +0000
Re: malloc Kaz Kylheku <kaz@kylheku.com> - 2012-02-18 10:36 +0000
Re: malloc BGB <cr88192@hotmail.com> - 2012-02-18 10:53 -0700
Re: malloc William Ahern <william@wilbur.25thandClement.com> - 2012-02-18 16:43 -0800
Re: malloc BGB <cr88192@hotmail.com> - 2012-02-18 20:03 -0700
Re: malloc Miles Bader <miles@gnu.org> - 2012-02-19 12:49 +0900
Re: malloc William Ahern <william@wilbur.25thandClement.com> - 2012-02-18 21:08 -0800
Re: malloc "io_x" <a@b.c.invalid> - 2012-02-19 18:23 +0100
Re: malloc William Ahern <william@wilbur.25thandClement.com> - 2012-02-18 21:06 -0800
Re: malloc BGB <cr88192@hotmail.com> - 2012-02-18 23:06 -0700
Re: malloc "Asger Joergensen" <Junk@Asger-P.dk> - 2012-02-19 15:54 +0000
Re: malloc BGB <cr88192@hotmail.com> - 2012-02-19 09:37 -0700
Re: malloc Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-02-16 20:27 -0500
Re: malloc Goran <goran.pusic@gmail.com> - 2012-02-16 23:40 -0800
Re: malloc Keith Thompson <kst-u@mib.org> - 2012-02-17 02:26 -0800
Re: malloc Goran <goran.pusic@gmail.com> - 2012-02-17 04:01 -0800
Re: malloc Keith Thompson <kst-u@mib.org> - 2012-02-17 09:25 -0800
Re: malloc Joshua Maurice <joshuamaurice@gmail.com> - 2012-02-17 14:49 -0800
Re: malloc glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2012-02-18 01:43 +0000
Re: malloc Kaz Kylheku <kaz@kylheku.com> - 2012-02-18 02:04 +0000
Re: malloc scott@slp53.sl.home (Scott Lurndal) - 2012-02-18 03:04 +0000
Re: malloc Robert Wessel <robertwessel2@yahoo.com> - 2012-02-17 22:15 -0600
Re: malloc Joshua Maurice <joshuamaurice@gmail.com> - 2012-02-17 23:48 -0800
Re: malloc Kaz Kylheku <kaz@kylheku.com> - 2012-02-17 23:29 +0000
Re: malloc William Ahern <william@wilbur.25thandClement.com> - 2012-02-17 15:42 -0800
Re: malloc "io_x" <a@b.c.invalid> - 2012-02-19 18:24 +0100
Re: malloc Kleuske <kleuske@nowhere.net> - 2012-02-19 20:41 +0000
Re: malloc James Kuyper <jameskuyper@verizon.net> - 2012-02-19 18:05 -0500
Re: malloc "io_x" <a@b.c.invalid> - 2012-02-20 12:24 +0100
Re: malloc Kleuske <kleuske@nowhere.net> - 2012-02-20 13:56 +0000
Re: malloc "io_x" <a@b.c.invalid> - 2012-02-20 15:14 +0100
Re: malloc William Ahern <william@wilbur.25thandClement.com> - 2012-02-19 15:19 -0800
Re: malloc Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-02-17 08:06 -0500
Re: malloc Goran <goran.pusic@gmail.com> - 2012-02-18 07:57 -0800
Re: malloc Keith Thompson <kst-u@mib.org> - 2012-02-18 10:57 -0800
Re: malloc Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-02-19 08:51 -0500
Re: malloc Noob <root@127.0.0.1> - 2012-02-17 11:44 +0100
Re: malloc "Joachim Schmitz" <nospam.jojo@schmitz-digital.de> - 2012-02-17 17:05 +0100
Re: malloc pete <pfiland@mindspring.com> - 2012-02-17 11:19 -0500
Re: malloc Noob <root@127.0.0.1> - 2012-02-17 17:30 +0100
Re: malloc James Kuyper <jameskuyper@verizon.net> - 2012-02-17 11:31 -0500
Re: malloc scott@slp53.sl.home (Scott Lurndal) - 2012-02-17 20:31 +0000
Re: malloc Joshua Maurice <joshuamaurice@gmail.com> - 2012-02-18 00:01 -0800
Re: malloc scott@slp53.sl.home (Scott Lurndal) - 2012-02-18 17:07 +0000
Re: malloc Joshua Maurice <joshuamaurice@gmail.com> - 2012-02-18 18:14 -0800
Re: malloc scott@slp53.sl.home (Scott Lurndal) - 2012-02-19 17:14 +0000
Re: malloc Goran <goran.pusic@gmail.com> - 2012-02-16 23:43 -0800
Re: malloc "io_x" <a@b.c.invalid> - 2012-02-19 16:44 +0100
csiph-web