Rocksolid Light

Welcome to Rocksolid Light

mail  files  register  newsreader  groups  login

Message-ID:  

Star Trek Lives!


devel / comp.arch / Re: Tonight's tradeoff

SubjectAuthor
* Tonight's tradeoffRobert Finch
+* Re: Tonight's tradeoffEricP
|`* Re: Tonight's tradeoffMitchAlsup
| `* Re: Tonight's tradeoffRobert Finch
|  `* Re: Tonight's tradeoffMitchAlsup
|   `* Re: Tonight's tradeoffRobert Finch
|    +- Re: Tonight's tradeoffRobert Finch
|    `* Re: Tonight's tradeoffMitchAlsup
|     `* Re: Tonight's tradeoffRobert Finch
|      `* Re: Tonight's tradeoffRobert Finch
|       `* Re: Tonight's tradeoffMitchAlsup
|        +* Re: Tonight's tradeoffRobert Finch
|        |+* Re: Tonight's tradeoffBGB
|        ||`* Re: Tonight's tradeoffRobert Finch
|        || +* Re: Tonight's tradeoffScott Lurndal
|        || |`- Re: Tonight's tradeoffMitchAlsup
|        || `- Re: Tonight's tradeoffBGB
|        |+- Re: Tonight's tradeoffScott Lurndal
|        |`* Re: Tonight's tradeoffMitchAlsup
|        | `* Re: Tonight's tradeoffScott Lurndal
|        |  +* Re: Tonight's tradeoffMitchAlsup
|        |  |`* Re: Tonight's tradeoffScott Lurndal
|        |  | `* Re: Tonight's tradeoffRobert Finch
|        |  |  +- Re: Tonight's tradeoffMitchAlsup
|        |  |  `- Re: Tonight's tradeoffScott Lurndal
|        |  `* Re: Tonight's tradeoffAnton Ertl
|        |   +* Re: Tonight's tradeoffEricP
|        |   |+- Re: Tonight's tradeoffMitchAlsup
|        |   |`- Re: Tonight's tradeoffAnton Ertl
|        |   +* Re: Tonight's tradeoffBGB
|        |   |+* Re: Tonight's tradeoffScott Lurndal
|        |   ||+- Re: Tonight's tradeoffBGB
|        |   ||`* Re: Tonight's tradeoffMitchAlsup
|        |   || `- Re: Tonight's tradeoffBGB
|        |   |+- Re: Tonight's tradeoffRobert Finch
|        |   |`* Re: Tonight's tradeoffAnton Ertl
|        |   | `- Re: Tonight's tradeoffBGB
|        |   `* Re: Tonight's tradeoffScott Lurndal
|        |    `* Re: Tonight's tradeoffAnton Ertl
|        |     `* Re: Tonight's tradeoffScott Lurndal
|        |      `* Re: Tonight's tradeoffAnton Ertl
|        |       `* Re: Tonight's tradeoffRobert Finch
|        |        +- Re: Tonight's tradeoffScott Lurndal
|        |        +* Re: Tonight's tradeoffEricP
|        |        |`* Re: Tonight's tradeoffMitchAlsup
|        |        | `* Re: Tonight's tradeoffRobert Finch
|        |        |  `* Re: Tonight's tradeoffMitchAlsup
|        |        |   `* Re: Tonight's tradeoffRobert Finch
|        |        |    `* Re: Tonight's tradeoffMitchAlsup
|        |        |     `* Re: Tonight's tradeoffRobert Finch
|        |        |      `- Re: Tonight's tradeoffMitchAlsup
|        |        `* Re: Tonight's tradeoffRobert Finch
|        |         `* Re: Tonight's tradeoffEricP
|        |          +* Re: Tonight's tradeoffMitchAlsup
|        |          |+- Re: Tonight's tradeoffRobert Finch
|        |          |`* Re: Tonight's tradeoffBGB
|        |          | `* Re: Tonight's tradeoffRobert Finch
|        |          |  `* Re: Tonight's tradeoffBGB
|        |          |   `* Re: Tonight's tradeoffRobert Finch
|        |          |    +- Re: Tonight's tradeoffMitchAlsup
|        |          |    `* Re: Tonight's tradeoffBGB
|        |          |     `* Re: Tonight's tradeoffRobert Finch
|        |          |      `* Re: Tonight's tradeoffBGB
|        |          |       `* Re: Tonight's tradeoffRobert Finch
|        |          |        `* Re: Tonight's tradeoffRobert Finch
|        |          |         `* Re: Tonight's tradeoffMitchAlsup
|        |          |          `* Re: Tonight's tradeoffBGB
|        |          |           `* Re: Tonight's tradeoffRobert Finch
|        |          |            `* Re: Tonight's tradeoffMitchAlsup
|        |          |             `* Re: Tonight's tradeoffRobert Finch
|        |          |              `* Re: Tonight's tradeoffMitchAlsup
|        |          |               `* Re: Tonight's tradeoffRobert Finch
|        |          |                +- Re: Tonight's tradeoffRobert Finch
|        |          |                `* Re: Tonight's tradeoffMitchAlsup
|        |          |                 `* Re: Tonight's tradeoffRobert Finch
|        |          |                  +* Re: Tonight's tradeoffMitchAlsup
|        |          |                  |`* Re: Tonight's tradeoffRobert Finch
|        |          |                  | `* Re: Tonight's tradeoffBGB
|        |          |                  |  `* Re: Tonight's tradeoffRobert Finch
|        |          |                  |   +* Re: Tonight's tradeoffMitchAlsup
|        |          |                  |   |`- Re: Tonight's tradeoffRobert Finch
|        |          |                  |   `* Re: Tonight's tradeoffBGB
|        |          |                  |    `* Re: Tonight's tradeoffRobert Finch
|        |          |                  |     `* Re: Tonight's tradeoffRobert Finch
|        |          |                  |      `* Re: Tonight's tradeoffEricP
|        |          |                  |       +* Re: Tonight's tradeoffMitchAlsup
|        |          |                  |       |`* Re: Tonight's tradeoffRobert Finch
|        |          |                  |       | +- Re: Tonight's tradeoffRobert Finch
|        |          |                  |       | `* Re: Tonight's tradeoffEricP
|        |          |                  |       |  `* Re: Tonight's tradeoffMitchAlsup
|        |          |                  |       |   `* Re: Tonight's tradeoffRobert Finch
|        |          |                  |       |    `* Re: Tonight's tradeoffRobert Finch
|        |          |                  |       |     +- Re: Tonight's tradeoffBGB
|        |          |                  |       |     `* Re: Tonight's tradeoffEricP
|        |          |                  |       |      `* Re: Tonight's tradeoffMitchAlsup
|        |          |                  |       |       +- Re: Tonight's tradeoffRobert Finch
|        |          |                  |       |       `* Re: Tonight's tradeoffEricP
|        |          |                  |       |        +* Re: Tonight's tradeoffChris M. Thomasson
|        |          |                  |       |        |`* Re: Tonight's tradeoffEricP
|        |          |                  |       |        | +- Re: Tonight's tradeoffAnton Ertl
|        |          |                  |       |        | `* Re: Tonight's tradeoffChris M. Thomasson
|        |          |                  |       |        `* Re: Tonight's tradeoffChris M. Thomasson
|        |          |                  |       `- Re: Tonight's tradeoffBGB
|        |          |                  `- Re: Tonight's tradeoffMitchAlsup
|        |          `- Re: Tonight's tradeoffRobert Finch
|        `- Re: Tonight's tradeoffScott Lurndal
+- Re: Tonight's tradeoffMitchAlsup
`* Re: Tonight's tradeoffRobert Finch

Pages:123456789101112
Re: Tonight's tradeoff

<usgdrh$2033i$1@dont-email.me>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=37856&group=comp.arch#37856

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: robfi680@gmail.com (Robert Finch)
Newsgroups: comp.arch
Subject: Re: Tonight's tradeoff
Date: Fri, 8 Mar 2024 20:26:08 -0500
Organization: A noiseless patient Spider
Lines: 24
Message-ID: <usgdrh$2033i$1@dont-email.me>
References: <us7hu4$3qpum$1@dont-email.me> <us7neb$3sv8c$1@dont-email.me>
<us81je$3v8p5$1@dont-email.me> <us8g78$1rva$1@dont-email.me>
<dec95c54e6adf32bdcd478f079745e86@www.novabbs.org>
<us9ffo$argb$1@dont-email.me> <us9vc5$ffl5$1@dont-email.me>
<usaciv$ibv9$1@dont-email.me>
<e7e6d152876f385e78404b06eef87121@www.novabbs.org>
<usbngu$tq9s$1@dont-email.me> <uscf92$12ifq$1@dont-email.me>
<4072ddfc6031310c0f2a3237e6cb455e@www.novabbs.org>
<usda1n$18gea$1@dont-email.me> <cmgmuilsa9bco9oboe9c46igr6dogb2ikc@4ax.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sat, 9 Mar 2024 01:26:10 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="4ada8a19491009e81d112ef0b0a4a2bf";
logging-data="2100338"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+H8DmYsN+5YV9QjD9vO+uQz0B2gDdQ1u4="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:nQphK0TetICHJi1jf92llpKN+Tc=
In-Reply-To: <cmgmuilsa9bco9oboe9c46igr6dogb2ikc@4ax.com>
Content-Language: en-US
 by: Robert Finch - Sat, 9 Mar 2024 01:26 UTC

On 2024-03-08 2:41 p.m., George Neuner wrote:
> On Thu, 7 Mar 2024 16:02:45 -0500, Robert Finch <robfi680@gmail.com>
> wrote:
>
>> A page marked RWE=000 is an unusable page. Perhaps to signal bad memory.
>> Or perhaps as a hidden data page full of comments or remarks. If its not
>> readable-writeable or executable what is it? Nothing should be able to
>> access it, except maybe the machine/debug operating mode.
>
> The ability to change (at least data) pages between "untouchable" and
> RW is required for MMU assisted incremental GC. If the GC also
> handles code, then it must be able to mark pages executable as well.
>
> If an "untouchable" page can't be manipulated by user software, then
> you've disallowed an entire class of GC systems.

Garbage collection seems to be common.

I plan on having garbage collection as part of the OS. There is a shared
hardware-card table involved. So, I guess that would disallow user
garbage collectors using untouchable pages. The MMU could be faked out
using a VM, so I have read.

Re: Tonight's tradeoff

<usi3pv$1a5sl$3@dont-email.me>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=37872&group=comp.arch#37872

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: sfuld@alumni.cmu.edu.invalid (Stephen Fuld)
Newsgroups: comp.arch
Subject: Re: Tonight's tradeoff
Date: Sat, 9 Mar 2024 08:46:54 -0800
Organization: A noiseless patient Spider
Lines: 57
Message-ID: <usi3pv$1a5sl$3@dont-email.me>
References: <uis67u$fkj4$1@dont-email.me> <us3l9r$2vtrd$1@dont-email.me>
<CxkFN.164321$JLvf.86786@fx44.iad> <us6dvv$3kp3g$1@dont-email.me>
<95f07d18ea021f53af50c0bf2064ccdf@www.novabbs.org>
<us7hu4$3qpum$1@dont-email.me>
<6c40d0ff46f3a25f75d1bb7f28544532@www.novabbs.org>
<usd69u$iq1t$1@dont-email.me> <mndnuip5mpbkj2vtoq0m53jtlsp01vjgc8@4ax.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sat, 9 Mar 2024 16:46:55 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="9d353eac739189d18c7a192e86750b39";
logging-data="1382293"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+tk9sWOLPVO+7XwuDVTYnGBMsoNmJw40Y="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:nzkrM7kzZyLqYzBgRXwUdtgsh/E=
In-Reply-To: <mndnuip5mpbkj2vtoq0m53jtlsp01vjgc8@4ax.com>
Content-Language: en-US
 by: Stephen Fuld - Sat, 9 Mar 2024 16:46 UTC

On 3/8/2024 5:13 PM, David W Schroth wrote:
> On Thu, 7 Mar 2024 11:58:53 -0800, Stephen Fuld
> <sfuld@alumni.cmu.edu.invalid> wrote:
>
>> On 3/5/2024 9:32 AM, MitchAlsup1 wrote:
>>
>> snip
>>
>>> I also believe in the tension between pages that are too small and those
>>> that are too large. 256B is widely seen as too small (VAX). I think most
>>> people are comfortable in the 4KB range. I think 64KB is too big since
>>> something like cat needs less code, less data, and less stack space than
>>> 1 single 64KB page and another 64KB page to map cat from its VAS. So, now;
>>> instead of four* 4KB pages (16KB ={code, data, stack, map} ) we now need
>>> four 64KB pages 256KB. It is these small applications that drive the
>>> minimum page size down.
>>
>> In thinking about this, an idea occurred to me that may ease this
>> tension some. For a large page, you introduce a new protection mode
>> such that, for example, the lower half of the addresses in the page are
>> execute only, and the upper half are read/write enabled. This would
>> allow the code and the data, and perhaps even the stack for such a
>> program to share a single page, while still maintaining the required
>> access protection. I think the hardware to implement this is pretty
>> small. While the benefits of this would be modest, if such "small
>> programs" occur often enough it may be worth the modest cost of the
>> additional hardware.
>
> I would suggest that your proposal would be better done by splitting
> access/protection from virtual to physical translation (think Mill
> turfs).

I think we are in general agreement here. As you implied, the
fundamental problem is that most current systems "overload" two pieces
of functionality (memory management and protection) onto a single
mechanism (paging). I like Mill's approach as it clearly separates the
two functions, though it does require more hardware, and I am not sure
how much easier it is for them than it would be for other systems since
they use a single address space. My proposal was for a low hardware
cost and easily implemented mechanism.

> I suppose OS2200 could use our existing protection to
> implement what you propose, but we haven't (largely because there
> seems to be no need/call for the capability).

Since the 2200 already separates the protection function (banking) from
the memory management function (paging), I think all that would be
required is to allow multiple banks, perhaps even from multiple programs
to use different parts of a page. But I agree that, with ~16 KB pages,
the savings would be much less than if larger pages were used, so the
benefits would be modest at best and probably not worth the effort.

--
- Stephen Fuld
(e-mail address disguised to prevent spam)

Re: Tonight's tradeoff

<oA1HN.521321$7sbb.345279@fx16.iad>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=37873&group=comp.arch#37873

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!fx16.iad.POSTED!not-for-mail
From: ThatWouldBeTelling@thevillage.com (EricP)
User-Agent: Thunderbird 2.0.0.24 (Windows/20100228)
MIME-Version: 1.0
Newsgroups: comp.arch
Subject: Re: Tonight's tradeoff
References: <uis67u$fkj4$1@dont-email.me> <us3l9r$2vtrd$1@dont-email.me> <CxkFN.164321$JLvf.86786@fx44.iad> <us6dvv$3kp3g$1@dont-email.me> <95f07d18ea021f53af50c0bf2064ccdf@www.novabbs.org> <us7hu4$3qpum$1@dont-email.me> <6c40d0ff46f3a25f75d1bb7f28544532@www.novabbs.org> <87il1ww92y.fsf@localhost>
In-Reply-To: <87il1ww92y.fsf@localhost>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Lines: 23
Message-ID: <oA1HN.521321$7sbb.345279@fx16.iad>
X-Complaints-To: abuse@UsenetServer.com
NNTP-Posting-Date: Sat, 09 Mar 2024 18:08:20 UTC
Date: Sat, 09 Mar 2024 13:07:44 -0500
X-Received-Bytes: 1869
 by: EricP - Sat, 9 Mar 2024 18:07 UTC

Lynn Wheeler wrote:
>
> Nearly 15yrs later at Dec81 ACM SIGOPS, Jim Gray ask if I could help a
> Tandem co-worker get Stanford Phd .... it involved similar global LRU to
> the work that I had done in the 60s and there were "local LRU" forces
> from the 60s lobbying hard not to award a Phd (that wasn't "local
> LRU"). I had real live data from a CP/67 with global LRU on 768kbyte
> (104 pageable pages) 360/67 with 80users that had better response and
> throughput compared to a CP/67 (with nearly identical type of workload
> but 35users) that implemented 60s "local LRU" implementation and 1mbyte
> 360/67 (155 pageable pages after fixed storage) ... aka half the users
> and 50% more real paging storage.

I assume by "local LRU" you mean local working set management,
as opposed to global working set e.g. WSClock.

Are you saying some people tried to block someone from getting a PhD
because he researched a different working set management than their
pet approach?

If so, wow...

Re: Tonight's tradeoff

<usjgpf$2ej1u$1@dont-email.me>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=37886&group=comp.arch#37886

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: sfuld@alumni.cmu.edu.invalid (Stephen Fuld)
Newsgroups: comp.arch
Subject: Re: Tonight's tradeoff
Date: Sat, 9 Mar 2024 21:34:39 -0800
Organization: A noiseless patient Spider
Lines: 42
Message-ID: <usjgpf$2ej1u$1@dont-email.me>
References: <uis67u$fkj4$1@dont-email.me> <us3l9r$2vtrd$1@dont-email.me>
<CxkFN.164321$JLvf.86786@fx44.iad> <us6dvv$3kp3g$1@dont-email.me>
<95f07d18ea021f53af50c0bf2064ccdf@www.novabbs.org>
<us7hu4$3qpum$1@dont-email.me>
<6c40d0ff46f3a25f75d1bb7f28544532@www.novabbs.org>
<usd69u$iq1t$1@dont-email.me> <use6p0$1h9vt$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Sun, 10 Mar 2024 05:34:39 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="bdc2f34f38f9ac031f60b9a0a1d66a49";
logging-data="2575422"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+jGCFcHt575f7me17E6MNKEL5WZALuv2Y="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:+VHOyhSusjQYUkYztF+ZHyLMGRk=
In-Reply-To: <use6p0$1h9vt$1@dont-email.me>
Content-Language: en-US
 by: Stephen Fuld - Sun, 10 Mar 2024 05:34 UTC

On 3/7/2024 9:13 PM, Robert Finch wrote:
> On 2024-03-07 2:58 p.m., Stephen Fuld wrote:
>> On 3/5/2024 9:32 AM, MitchAlsup1 wrote:
>>
>> snip
>>
>>> I also believe in the tension between pages that are too small and
>>> those that are too large. 256B is widely seen as too small (VAX). I
>>> think most
>>> people are comfortable in the 4KB range. I think 64KB is too big since
>>> something like cat needs less code, less data, and less stack space than
>>> 1 single 64KB page and another 64KB page to map cat from its VAS. So,
>>> now;
>>> instead of four* 4KB pages (16KB ={code, data, stack, map} ) we now need
>>> four 64KB pages 256KB. It is these small applications that drive the
>>> minimum page size down.
>>
>> In thinking about this, an idea occurred to me that may ease this
>> tension some.  For a large page, you introduce a new protection mode
>> such that, for example, the lower half of the addresses in the page
>> are execute only, and the upper half are read/write enabled.  This
>> would allow the code and the data, and perhaps even the stack for such
>> a program to share a single page, while still maintaining the required
>> access protection.  I think the hardware to implement this is pretty
>> small.  While the benefits of this would be modest, if such "small
>> programs" occur often enough it may be worth the modest cost of the
>> additional hardware.
>>
>>
> I had thoughts along this line too. I have added user access rights for
> each 1/4 of a page. Only a single 64kB page split in four is needed for
> a small app then.

Yes, similar. I suspect your solution is more general than mine and
thus handles more cases, but requires more hardware, especially bits in
the PTE. It's all a tradeoff.

--
- Stephen Fuld
(e-mail address disguised to prevent spam)

Re: Tonight's tradeoff

<thlruit3i6t2jq9dt90nfvbfaljs0beg4a@4ax.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=37893&group=comp.arch#37893

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!.POSTED!not-for-mail
From: gneuner2@comcast.net (George Neuner)
Newsgroups: comp.arch
Subject: Re: Tonight's tradeoff
Date: Sun, 10 Mar 2024 14:29:52 -0400
Organization: i2pn2 (i2pn.org)
Message-ID: <thlruit3i6t2jq9dt90nfvbfaljs0beg4a@4ax.com>
References: <us81je$3v8p5$1@dont-email.me> <us8g78$1rva$1@dont-email.me> <dec95c54e6adf32bdcd478f079745e86@www.novabbs.org> <us9ffo$argb$1@dont-email.me> <us9vc5$ffl5$1@dont-email.me> <usaciv$ibv9$1@dont-email.me> <e7e6d152876f385e78404b06eef87121@www.novabbs.org> <usbngu$tq9s$1@dont-email.me> <uscf92$12ifq$1@dont-email.me> <4072ddfc6031310c0f2a3237e6cb455e@www.novabbs.org> <usda1n$18gea$1@dont-email.me> <cmgmuilsa9bco9oboe9c46igr6dogb2ikc@4ax.com> <usgdrh$2033i$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Injection-Info: i2pn2.org;
logging-data="1536138"; mail-complaints-to="usenet@i2pn2.org";
posting-account="h5eMH71iFfocGZucc+SnA0y5I+72/ecoTCcIjMd3Uww";
User-Agent: ForteAgent/8.00.32.1272
X-Spam-Checker-Version: SpamAssassin 4.0.0
 by: George Neuner - Sun, 10 Mar 2024 18:29 UTC

On Fri, 8 Mar 2024 20:26:08 -0500, Robert Finch <robfi680@gmail.com>
wrote:

>I plan on having garbage collection as part of the OS. There is a shared
>hardware-card table involved.

What kind?
[Actually "kind" is the wrong word because any non-toy, real world GC
will need to employ a combination of techniques. So the question
really should be "in what major class is your GC"?]

Problem is - whatever you choose - it will be wrong and have bad
performance for some important class of GC'd applications.

>So, I guess that would disallow user
>garbage collectors using untouchable pages. The MMU could be faked out
>using a VM, so I have read.

Yes, a VM can emulate MMU operation, but currently that requires using
a hypervisor - a heavyweight solution that also requires a guest OS to
run the program.

There are a number of light(er) weight VMs for running programs in
managed environments [which include GC] ... but all of them have to
run under an OS and are at its mercy.

GCs that use no-access pages are not rare, and they are just one class
of MMU assisted GC systems. There are a number of ways a collector
can leverage the MMU to help.

Re: Tonight's tradeoff

<mkhsuidtf2qd9d1nv3m0fnumd30eknrr3v@4ax.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=37907&group=comp.arch#37907

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!.POSTED!not-for-mail
From: gneuner2@comcast.net (George Neuner)
Newsgroups: comp.arch
Subject: Re: Tonight's tradeoff
Date: Sun, 10 Mar 2024 19:53:12 -0400
Organization: i2pn2 (i2pn.org)
Message-ID: <mkhsuidtf2qd9d1nv3m0fnumd30eknrr3v@4ax.com>
References: <dec95c54e6adf32bdcd478f079745e86@www.novabbs.org> <us9ffo$argb$1@dont-email.me> <us9vc5$ffl5$1@dont-email.me> <usaciv$ibv9$1@dont-email.me> <e7e6d152876f385e78404b06eef87121@www.novabbs.org> <usbngu$tq9s$1@dont-email.me> <uscf92$12ifq$1@dont-email.me> <4072ddfc6031310c0f2a3237e6cb455e@www.novabbs.org> <usda1n$18gea$1@dont-email.me> <cmgmuilsa9bco9oboe9c46igr6dogb2ikc@4ax.com> <usgdrh$2033i$1@dont-email.me> <thlruit3i6t2jq9dt90nfvbfaljs0beg4a@4ax.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Injection-Info: i2pn2.org;
logging-data="1564038"; mail-complaints-to="usenet@i2pn2.org";
posting-account="h5eMH71iFfocGZucc+SnA0y5I+72/ecoTCcIjMd3Uww";
User-Agent: ForteAgent/8.00.32.1272
X-Spam-Checker-Version: SpamAssassin 4.0.0
 by: George Neuner - Sun, 10 Mar 2024 23:53 UTC

On Sun, 10 Mar 2024 14:29:52 -0400, George Neuner
<gneuner2@comcast.net> wrote:

>Problem is - whatever [GC] you choose - it will be wrong and have bad
>performance for some important class of GC'd applications.

"bad performance" may mean "slow", but also may mean memory use much
higher than should be necessary.

Re: Tonight's tradeoff

<86zfv4rat6.fsf@linuxsc.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=37924&group=comp.arch#37924

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: tr.17687@z991.linuxsc.com (Tim Rentsch)
Newsgroups: comp.arch
Subject: Re: Tonight's tradeoff
Date: Mon, 11 Mar 2024 09:29:57 -0700
Organization: A noiseless patient Spider
Lines: 25
Message-ID: <86zfv4rat6.fsf@linuxsc.com>
References: <us81je$3v8p5$1@dont-email.me> <us8g78$1rva$1@dont-email.me> <dec95c54e6adf32bdcd478f079745e86@www.novabbs.org> <us9ffo$argb$1@dont-email.me> <us9vc5$ffl5$1@dont-email.me> <usaciv$ibv9$1@dont-email.me> <e7e6d152876f385e78404b06eef87121@www.novabbs.org> <usbngu$tq9s$1@dont-email.me> <uscf92$12ifq$1@dont-email.me> <4072ddfc6031310c0f2a3237e6cb455e@www.novabbs.org> <usda1n$18gea$1@dont-email.me> <cmgmuilsa9bco9oboe9c46igr6dogb2ikc@4ax.com> <usgdrh$2033i$1@dont-email.me> <thlruit3i6t2jq9dt90nfvbfaljs0beg4a@4ax.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Injection-Info: dont-email.me; posting-host="9d23253f7ade536449cb5f50b3111ee8";
logging-data="3905993"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+C5ZrRLjZCVqESzSB5MBWOsKDGD4b9CX8="
User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.4 (gnu/linux)
Cancel-Lock: sha1:GspyGPy2WYgDhUQC84RA3TVJAAk=
sha1:r4o4XORCZUey+JlxfTPHVxiGDMY=
 by: Tim Rentsch - Mon, 11 Mar 2024 16:29 UTC

George Neuner <gneuner2@comcast.net> writes:

> On Fri, 8 Mar 2024 20:26:08 -0500, Robert Finch <robfi680@gmail.com>
> wrote:
>
>> I plan on having garbage collection as part of the OS. There is a shared
>> hardware-card table involved.
>
> What kind?
> [Actually "kind" is the wrong word because any non-toy, real world GC
> will need to employ a combination of techniques. So the question
> really should be "in what major class is your GC"?]
>
> Problem is - whatever you choose - it will be wrong and have bad
> performance for some important class of GC'd applications.

I'm curious to know what you consider to be the different kinds,
or classes, of GC, and the same question for applications.

Certainly, for any given GC implementation, one can construct an
application that does poorly with respect to that GC, but that
doesn't make the constructed application a "class". For the
statement to have meaningful content there needs to be some kind
of identification of what are the classes of GCs, and what are
the classes of applications.

Re: Tonight's tradeoff

<86v85sraon.fsf@linuxsc.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=37925&group=comp.arch#37925

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: tr.17687@z991.linuxsc.com (Tim Rentsch)
Newsgroups: comp.arch
Subject: Re: Tonight's tradeoff
Date: Mon, 11 Mar 2024 09:32:40 -0700
Organization: A noiseless patient Spider
Lines: 14
Message-ID: <86v85sraon.fsf@linuxsc.com>
References: <dec95c54e6adf32bdcd478f079745e86@www.novabbs.org> <us9ffo$argb$1@dont-email.me> <us9vc5$ffl5$1@dont-email.me> <usaciv$ibv9$1@dont-email.me> <e7e6d152876f385e78404b06eef87121@www.novabbs.org> <usbngu$tq9s$1@dont-email.me> <uscf92$12ifq$1@dont-email.me> <4072ddfc6031310c0f2a3237e6cb455e@www.novabbs.org> <usda1n$18gea$1@dont-email.me> <cmgmuilsa9bco9oboe9c46igr6dogb2ikc@4ax.com> <usgdrh$2033i$1@dont-email.me> <thlruit3i6t2jq9dt90nfvbfaljs0beg4a@4ax.com> <mkhsuidtf2qd9d1nv3m0fnumd30eknrr3v@4ax.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Injection-Info: dont-email.me; posting-host="9d23253f7ade536449cb5f50b3111ee8";
logging-data="3905993"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/oU6+M2foVCqVdHkhF9jmZWzHn+Owke9M="
User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.4 (gnu/linux)
Cancel-Lock: sha1:I3Vk1G2Y0jjvKPVUd9Fo374k34g=
sha1:M798Ccshs/FWKy0lByGOAXlhfYM=
 by: Tim Rentsch - Mon, 11 Mar 2024 16:32 UTC

George Neuner <gneuner2@comcast.net> writes:

> On Sun, 10 Mar 2024 14:29:52 -0400, George Neuner
> <gneuner2@comcast.net> wrote:
>
>
>> Problem is - whatever [GC] you choose - it will be wrong and have bad
>> performance for some important class of GC'd applications.
>
> "bad performance" may mean "slow", but also may mean memory use much
> higher than should be necessary.

Understood. And there are other relevant metrics as well, as
for example not throughput but worst-case latency.

Re: Tonight's tradeoff

<usoo9i$49j2$1@dont-email.me>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=37943&group=comp.arch#37943

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: robfi680@gmail.com (Robert Finch)
Newsgroups: comp.arch
Subject: Re: Tonight's tradeoff
Date: Tue, 12 Mar 2024 01:13:22 -0400
Organization: A noiseless patient Spider
Lines: 18
Message-ID: <usoo9i$49j2$1@dont-email.me>
References: <dec95c54e6adf32bdcd478f079745e86@www.novabbs.org>
<us9ffo$argb$1@dont-email.me> <us9vc5$ffl5$1@dont-email.me>
<usaciv$ibv9$1@dont-email.me>
<e7e6d152876f385e78404b06eef87121@www.novabbs.org>
<usbngu$tq9s$1@dont-email.me> <uscf92$12ifq$1@dont-email.me>
<4072ddfc6031310c0f2a3237e6cb455e@www.novabbs.org>
<usda1n$18gea$1@dont-email.me> <cmgmuilsa9bco9oboe9c46igr6dogb2ikc@4ax.com>
<usgdrh$2033i$1@dont-email.me> <thlruit3i6t2jq9dt90nfvbfaljs0beg4a@4ax.com>
<mkhsuidtf2qd9d1nv3m0fnumd30eknrr3v@4ax.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Tue, 12 Mar 2024 05:13:23 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="8eac1797a7259159c45bf1ab4ce2887c";
logging-data="140898"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18l82q9vDbGAoG981sncjoRevmAndZ8IRs="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:WFHXyqy5KIadMp6mTnFo8IT72D4=
Content-Language: en-US
In-Reply-To: <mkhsuidtf2qd9d1nv3m0fnumd30eknrr3v@4ax.com>
 by: Robert Finch - Tue, 12 Mar 2024 05:13 UTC

On 2024-03-10 7:53 p.m., George Neuner wrote:
> On Sun, 10 Mar 2024 14:29:52 -0400, George Neuner
> <gneuner2@comcast.net> wrote:
>
>
>> Problem is - whatever [GC] you choose - it will be wrong and have bad
>> performance for some important class of GC'd applications.
>
> "bad performance" may mean "slow", but also may mean memory use much
> higher than should be necessary.

I have not chosen a specific class yet. It will be incremental though.
There is a timer or two dedicated in the system for garbage collection.
It may be left up to the app to do garbage collection, with timing
notifications sent to the app. IRL garbage collection is done periodically.

GC is prevalent in many applications, it should be supported somehow.

Re: Tonight's tradeoff

<47d0vi5lh4efcsgmdp7j558tnsga7j6p5d@4ax.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=37950&group=comp.arch#37950

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!.POSTED!not-for-mail
From: gneuner2@comcast.net (George Neuner)
Newsgroups: comp.arch
Subject: Re: Tonight's tradeoff
Date: Tue, 12 Mar 2024 07:30:08 -0400
Organization: i2pn2 (i2pn.org)
Message-ID: <47d0vi5lh4efcsgmdp7j558tnsga7j6p5d@4ax.com>
References: <us9ffo$argb$1@dont-email.me> <us9vc5$ffl5$1@dont-email.me> <usaciv$ibv9$1@dont-email.me> <e7e6d152876f385e78404b06eef87121@www.novabbs.org> <usbngu$tq9s$1@dont-email.me> <uscf92$12ifq$1@dont-email.me> <4072ddfc6031310c0f2a3237e6cb455e@www.novabbs.org> <usda1n$18gea$1@dont-email.me> <cmgmuilsa9bco9oboe9c46igr6dogb2ikc@4ax.com> <usgdrh$2033i$1@dont-email.me> <thlruit3i6t2jq9dt90nfvbfaljs0beg4a@4ax.com> <mkhsuidtf2qd9d1nv3m0fnumd30eknrr3v@4ax.com> <86v85sraon.fsf@linuxsc.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Injection-Info: i2pn2.org;
logging-data="1720765"; mail-complaints-to="usenet@i2pn2.org";
posting-account="h5eMH71iFfocGZucc+SnA0y5I+72/ecoTCcIjMd3Uww";
User-Agent: ForteAgent/8.00.32.1272
X-Spam-Checker-Version: SpamAssassin 4.0.0
 by: George Neuner - Tue, 12 Mar 2024 11:30 UTC

On Mon, 11 Mar 2024 09:32:40 -0700, Tim Rentsch
<tr.17687@z991.linuxsc.com> wrote:

>George Neuner <gneuner2@comcast.net> writes:
>
>> On Sun, 10 Mar 2024 14:29:52 -0400, George Neuner
>> <gneuner2@comcast.net> wrote:
>>
>>
>>> Problem is - whatever [GC] you choose - it will be wrong and have bad
>>> performance for some important class of GC'd applications.
>>
>> "bad performance" may mean "slow", but also may mean memory use much
>> higher than should be necessary.
>
>Understood. And there are other relevant metrics as well, as
>for example not throughput but worst-case latency.

If latency is the primary concern, then you should use a deterministic
system such as Baker's Treadmill.

Treadmill essentially is just a set of linked lists, and collectio
operations like marking and sweeping simply move blocks from one list
to another. But you pay for that determinism with space - compared to
other systems, Treadmills have a lot of per-block metadata.

Note that for allocating and freeing to be deterministic, a Treadmill
has to work with fixed size blocks. But you can run multiple
Treadmills for common block sizes, with a catchall for big blocks.
Some malloc/free style allocators already work like this, using
separate lists for some commonly requested block sizes.

Depending on how you handle the metadata, Treadmills also are amenable
to coalescing free space and/or compacting the heap / working set. But
note that these types of operations can't be made deterministic.

Re: Tonight's tradeoff

<867ci6rfgu.fsf@linuxsc.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=37968&group=comp.arch#37968

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: tr.17687@z991.linuxsc.com (Tim Rentsch)
Newsgroups: comp.arch
Subject: Re: Tonight's tradeoff
Date: Tue, 12 Mar 2024 20:13:53 -0700
Organization: A noiseless patient Spider
Lines: 24
Message-ID: <867ci6rfgu.fsf@linuxsc.com>
References: <us9ffo$argb$1@dont-email.me> <us9vc5$ffl5$1@dont-email.me> <usaciv$ibv9$1@dont-email.me> <e7e6d152876f385e78404b06eef87121@www.novabbs.org> <usbngu$tq9s$1@dont-email.me> <uscf92$12ifq$1@dont-email.me> <4072ddfc6031310c0f2a3237e6cb455e@www.novabbs.org> <usda1n$18gea$1@dont-email.me> <cmgmuilsa9bco9oboe9c46igr6dogb2ikc@4ax.com> <usgdrh$2033i$1@dont-email.me> <thlruit3i6t2jq9dt90nfvbfaljs0beg4a@4ax.com> <mkhsuidtf2qd9d1nv3m0fnumd30eknrr3v@4ax.com> <86v85sraon.fsf@linuxsc.com> <47d0vi5lh4efcsgmdp7j558tnsga7j6p5d@4ax.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Injection-Info: dont-email.me; posting-host="79dd1b0d32cfdf47da0b884151472315";
logging-data="801885"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX198vl/SztsDyJWkwk3z+RoQDK6IIGTI0VU="
User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.4 (gnu/linux)
Cancel-Lock: sha1:8c/UVqxv0FoApOzBCKeKOBmagoE=
sha1:AuAd7QhE3dWSO1R95onU8CTfJoI=
 by: Tim Rentsch - Wed, 13 Mar 2024 03:13 UTC

George Neuner <gneuner2@comcast.net> writes:

> On Mon, 11 Mar 2024 09:32:40 -0700, Tim Rentsch
> <tr.17687@z991.linuxsc.com> wrote:
>
>> George Neuner <gneuner2@comcast.net> writes:
>>
>>> On Sun, 10 Mar 2024 14:29:52 -0400, George Neuner
>>> <gneuner2@comcast.net> wrote:
>>>
>>>
>>>> Problem is - whatever [GC] you choose - it will be wrong and have bad
>>>> performance for some important class of GC'd applications.
>>>
>>> "bad performance" may mean "slow", but also may mean memory use much
>>> higher than should be necessary.
>>
>> Understood. And there are other relevant metrics as well, as
>> for example not throughput but worst-case latency.
>
> If latency is the primary concern, then you should use a deterministic
> system such as Baker's Treadmill. [...]

Does this mean you aren't going to answer my other question?

Re: Tonight's tradeoff

<id52vid449tib9q6gu1i07n2k7g3i1o3ts@4ax.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=37971&group=comp.arch#37971

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!.POSTED!not-for-mail
From: gneuner2@comcast.net (George Neuner)
Newsgroups: comp.arch
Subject: Re: Tonight's tradeoff
Date: Tue, 12 Mar 2024 23:57:02 -0400
Organization: i2pn2 (i2pn.org)
Message-ID: <id52vid449tib9q6gu1i07n2k7g3i1o3ts@4ax.com>
References: <us9ffo$argb$1@dont-email.me> <us9vc5$ffl5$1@dont-email.me> <usaciv$ibv9$1@dont-email.me> <e7e6d152876f385e78404b06eef87121@www.novabbs.org> <usbngu$tq9s$1@dont-email.me> <uscf92$12ifq$1@dont-email.me> <4072ddfc6031310c0f2a3237e6cb455e@www.novabbs.org> <usda1n$18gea$1@dont-email.me> <cmgmuilsa9bco9oboe9c46igr6dogb2ikc@4ax.com> <usgdrh$2033i$1@dont-email.me> <thlruit3i6t2jq9dt90nfvbfaljs0beg4a@4ax.com> <86zfv4rat6.fsf@linuxsc.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Injection-Info: i2pn2.org;
logging-data="1799927"; mail-complaints-to="usenet@i2pn2.org";
posting-account="h5eMH71iFfocGZucc+SnA0y5I+72/ecoTCcIjMd3Uww";
User-Agent: ForteAgent/8.00.32.1272
X-Spam-Checker-Version: SpamAssassin 4.0.0
 by: George Neuner - Wed, 13 Mar 2024 03:57 UTC

On Mon, 11 Mar 2024 09:29:57 -0700, Tim Rentsch
<tr.17687@z991.linuxsc.com> wrote:

>George Neuner <gneuner2@comcast.net> writes:
>
>> On Fri, 8 Mar 2024 20:26:08 -0500, Robert Finch <robfi680@gmail.com>
>> wrote:
>>
>>> I plan on having garbage collection as part of the OS. There is a shared
>>> hardware-card table involved.
>>
>> What kind?
>> [Actually "kind" is the wrong word because any non-toy, real world GC
>> will need to employ a combination of techniques. So the question
>> really should be "in what major class is your GC"?]
>>
>> Problem is - whatever you choose - it will be wrong and have bad
>> performance for some important class of GC'd applications.
>
>I'm curious to know what you consider to be the different kinds,
>or classes, of GC, and the same question for applications.
>
>Certainly, for any given GC implementation, one can construct an
>application that does poorly with respect to that GC, but that
>doesn't make the constructed application a "class". For the
>statement to have meaningful content there needs to be some kind
>of identification of what are the classes of GCs, and what are
>the classes of applications.

Feeling mathematical are we?

Every application contains delineated portions of its overall
allocation profile which correspond closely to portions of the
profiles of other applications.

If a given profile performs poorly under a given GC, it is reasonable
to infer that other applications having corresponding profiles also
will perform poorly while those profiles are in force.

That said ...

GC systems - including their associated allocator(s) - are categorized
(better word?) by their behavior. Unfortunately, behavior is
described by a complex set of implementation choices.

Understand that real world GC typically implement more than one
algorithm, and often the algorithms are hybridized - derived from and
relatable to published algorithms, but having unique mix of function
that won't be found "as is" in any search of literature. [In truth,
GC literature tends to leave a lot as exercise for the reader.]

GC behavior often is adaptive, reacting to run time conditions: e.g.,
based on memory fragmentation it could shift between non-moving
mark/sweep and moving mark/compact. It may also employ differing
algorithms simultaneously in different spaces, such as being
conservative in stacks while being precise in dynamic heaps, or being
stop-world in thread private heaps while being concurrent or parallel
in shared heaps. Etc.

Concurrent GC (aka incremental) runs as a co-routine with the mutator.
These systems are distinguished by how they are triggered to run, and
what bounds may be placed on their execution time. There are
concurrent systems having completely deterministic operation [their
actual execution time, of course, may depend on factors beyond the
GC's control, such as multitasking, caching or paging.]

Parallel GC may be both prioritized and scheduled. These systems may
offer some guarantees about the percentage of (application) time given
to collector vs mutator(s).

Major choices:

- precise or conservative?
- moving or non-moving?
- tracing (marking)?
- copying / compacting?
- stop-world, concurrent, or parallel?

- single or multiple spaces?
- semispaces?
- generational?

Minor choices:

- software-only or hardware (MMU) assisted?
- snapshot at beginning?

- bump or block allocation?
- allocation color?

- free blocks coalesced? {if not compacting}

- multiple mutators?
- mutation color?
- writable shared objects?
- FROM-space mutation?
- finalization?

Note that all of these represent free dimensions in design. As
mentioned above, any particular system may implement multiple
collection algorithms each embodying a different set of choices.

You may wonder why I didn't mention "sweeping" ... essentially it is
because sequential scan is more an implementation detail than a
technique. Although "mark/sweep" is a well established technique, it
is the marking (tracing) that really defines it. Then too, modern
collectors often are neither mark/sweep nor copying as presented in
textbooks: e.g., there are systems that mark and copy, systems that
sweep and copy (without marking), and "copying" systems in which
copies are logical and nothing actually changes address.

Aside: all GC can be considered to use [logical] semispaces because
all have the notion of segregated FROM-space and TO-space during
collection. True semispaces are a set of (address) contiguous spaces
- not necessarily equally sized - which are rotated as targets for new
allocation. True semispaces do imply physical copying [but see the
Treadmill for an example of "non-moving copy" using logical
semispaces].

So what do I consider to be the "kind" of a GC?

The choices above pretty much define the extent of the design space
[but note I did intentionally leave out reference counting]. However,
the first 8 choices are structural, whereas the rest specify important
characteristics but don't affect structure.

A particular "kind" might be, e.g.,
"precise, generational, multispace, non-moving, concurrent
tracer".
and so on.

I'm guessing this probably didn't really answer your question, but it
was fun to write.
;-)

George

Re: Tonight's tradeoff

<86h6flunqa.fsf@linuxsc.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=38495&group=comp.arch#38495

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: tr.17687@z991.linuxsc.com (Tim Rentsch)
Newsgroups: comp.arch
Subject: Re: Tonight's tradeoff
Date: Sun, 28 Apr 2024 15:27:41 -0700
Organization: A noiseless patient Spider
Lines: 163
Message-ID: <86h6flunqa.fsf@linuxsc.com>
References: <us9ffo$argb$1@dont-email.me> <us9vc5$ffl5$1@dont-email.me> <usaciv$ibv9$1@dont-email.me> <e7e6d152876f385e78404b06eef87121@www.novabbs.org> <usbngu$tq9s$1@dont-email.me> <uscf92$12ifq$1@dont-email.me> <4072ddfc6031310c0f2a3237e6cb455e@www.novabbs.org> <usda1n$18gea$1@dont-email.me> <cmgmuilsa9bco9oboe9c46igr6dogb2ikc@4ax.com> <usgdrh$2033i$1@dont-email.me> <thlruit3i6t2jq9dt90nfvbfaljs0beg4a@4ax.com> <86zfv4rat6.fsf@linuxsc.com> <id52vid449tib9q6gu1i07n2k7g3i1o3ts@4ax.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Injection-Date: Mon, 29 Apr 2024 00:27:44 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="c36476fd6bd91582cb5d0726d3f1692e";
logging-data="1371881"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19JAkzKicxjony0a0BXM9iR//1CpTb/CIc="
User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.4 (gnu/linux)
Cancel-Lock: sha1:GhnNG3vjCUaCDdVTRlMlHEeyLFc=
sha1:3mcnumRPxN829lop1ukh1MwmyEI=
 by: Tim Rentsch - Sun, 28 Apr 2024 22:27 UTC

George Neuner <gneuner2@comcast.net> writes:

> On Mon, 11 Mar 2024 09:29:57 -0700, Tim Rentsch
> <tr.17687@z991.linuxsc.com> wrote:
>
>> George Neuner <gneuner2@comcast.net> writes:
>>
>>> On Fri, 8 Mar 2024 20:26:08 -0500, Robert Finch <robfi680@gmail.com>
>>> wrote:
>>>
>>>> I plan on having garbage collection as part of the OS. There
>>>> is a shared hardware-card table involved.
>>>
>>> What kind?
>>> [Actually "kind" is the wrong word because any non-toy, real
>>> world GC will need to employ a combination of techniques. So
>>> the question really should be "in what major class is your GC"?]
>>>
>>> Problem is - whatever you choose - it will be wrong and have bad
>>> performance for some important class of GC'd applications.
>>
>> I'm curious to know what you consider to be the different kinds,
>> or classes, of GC, and the same question for applications.
>>
>> Certainly, for any given GC implementation, one can construct an
>> application that does poorly with respect to that GC, but that
>> doesn't make the constructed application a "class". For the
>> statement to have meaningful content there needs to be some kind
>> of identification of what are the classes of GCs, and what are
>> the classes of applications.
>
> Feeling mathematical are we?

If you're trying to say I make an effort to be accurate and
precise in my writing, I plead guilty as charged.

> Every application contains delineated portions of its overall
> allocation profile which correspond closely to portions of the
> profiles of other applications.
>
> If a given profile performs poorly under a given GC, it is
> reasonable to infer that other applications having corresponding
> profiles also will perform poorly while those profiles are in
> force.

An empty, circular observation. Very disappointing.

> That said ...
>
>
>
> GC systems - including their associated allocator(s) - are categorized
> (better word?) by their behavior. Unfortunately, behavior is
> described by a complex set of implementation choices.
>
> Understand that real world GC typically implement more than one
> algorithm, and often the algorithms are hybridized - derived from and
> relatable to published algorithms, but having unique mix of function
> that won't be found "as is" in any search of literature. [In truth,
> GC literature tends to leave a lot as exercise for the reader.]
>
> GC behavior often is adaptive, reacting to run time conditions: e.g.,
> based on memory fragmentation it could shift between non-moving
> mark/sweep and moving mark/compact. It may also employ differing
> algorithms simultaneously in different spaces, such as being
> conservative in stacks while being precise in dynamic heaps, or being
> stop-world in thread private heaps while being concurrent or parallel
> in shared heaps. Etc.
>
>
> Concurrent GC (aka incremental) runs as a co-routine with the mutator.
> These systems are distinguished by how they are triggered to run, and
> what bounds may be placed on their execution time. There are
> concurrent systems having completely deterministic operation [their
> actual execution time, of course, may depend on factors beyond the
> GC's control, such as multitasking, caching or paging.]
>
> Parallel GC may be both prioritized and scheduled. These systems may
> offer some guarantees about the percentage of (application) time given
> to collector vs mutator(s).
>
>
> Major choices:
>
> - precise or conservative?
> - moving or non-moving?
> - tracing (marking)?
> - copying / compacting?
> - stop-world, concurrent, or parallel?
>
> - single or multiple spaces?
> - semispaces?
> - generational?
>
> Minor choices:
>
> - software-only or hardware (MMU) assisted?
> - snapshot at beginning?
>
> - bump or block allocation?
> - allocation color?
>
> - free blocks coalesced? {if not compacting}
>
> - multiple mutators?
> - mutation color?
> - writable shared objects?
> - FROM-space mutation?
> - finalization?
>
>
> Note that all of these represent free dimensions in design. As
> mentioned above, any particular system may implement multiple
> collection algorithms each embodying a different set of choices.

I'm familiar with many or perhaps most of the variations
and techniques used in garbage collection. That isn't
what I was asking about.

> You may wonder why I didn't mention "sweeping" ... essentially it is
> because sequential scan is more an implementation detail than a
> technique. Although "mark/sweep" is a well established technique, it
> is the marking (tracing) that really defines it. Then too, modern
> collectors often are neither mark/sweep nor copying as presented in
> textbooks: e.g., there are systems that mark and copy, systems that
> sweep and copy (without marking), and "copying" systems in which
> copies are logical and nothing actually changes address.
>
> Aside: all GC can be considered to use [logical] semispaces because
> all have the notion of segregated FROM-space and TO-space during
> collection. True semispaces are a set of (address) contiguous spaces
> - not necessarily equally sized - which are rotated as targets for new
> allocation. True semispaces do imply physical copying [but see the
> Treadmill for an example of "non-moving copy" using logical
> semispaces].
>
>
>
> So what do I consider to be the "kind" of a GC?
>
> The choices above pretty much define the extent of the design space
> [but note I did intentionally leave out reference counting]. However,
> the first 8 choices are structural, whereas the rest specify important
> characteristics but don't affect structure.
>
> A particular "kind" might be, e.g.,
> "precise, generational, multispace, non-moving, concurrent
> tracer".
> and so on.

In effect what you are saying is that if we list all the possible
attributes that a GC implementation might have, we can charactrize
what kind of GC it is by giving its value for each attribute. Not
really a helpful statement.

> I'm guessing this probably didn't really answer your question,

Your comments didn't address either of my questions, nor as best
I can tell even make an effort to do so.

> but it was fun to write. ;-)

I see. Next time I'll know better.

Pages:123456789101112
server_pubkey.txt

rocksolid light 0.9.8
clearnet tor