Deutsch English Français Italiano |
<v4ft6v$2g612$1@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: "Paul A. Clayton" <paaronclayton@gmail.com> Newsgroups: comp.arch Subject: Re: Privilege Levels Below User Date: Thu, 13 Jun 2024 18:52:13 -0400 Organization: A noiseless patient Spider Lines: 72 Message-ID: <v4ft6v$2g612$1@dont-email.me> References: <jai66jd4ih4ejmek0abnl4gvg5td4obsqg@4ax.com> <h0ib6j576v8o37qu1ojrsmeb5o88f29upe@4ax.com> <2024Jun9.185245@mips.complang.tuwien.ac.at> <38ob6jl9sl3ceb0qugaf26cbv8lk7hmdil@4ax.com> <2024Jun10.091648@mips.complang.tuwien.ac.at> <o32f6jlq2qpi9s1u8giq521vv40uqrkiod@4ax.com> <3a691dbdc80ebcc98d69c3a234f4135b@www.novabbs.org> <k58h6jlvp9rl13br6v1t24t47t4t2brfiv@4ax.com> <5a27391589243e11b610b14c3015ec09@www.novabbs.org> <jqgaO.1934$WaKd.92@fx41.iad> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Fri, 14 Jun 2024 00:52:15 +0200 (CEST) Injection-Info: dont-email.me; posting-host="9bc529aa01f938c22a707fb859b26e71"; logging-data="2627618"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18iRQaNEMwi1wYo9M8FL/Bl11uXPH6O534=" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.0 Cancel-Lock: sha1:EbjmY0GprwktMVvzLRA76bZbrJk= In-Reply-To: <jqgaO.1934$WaKd.92@fx41.iad> Bytes: 4513 On 6/12/24 8:22 AM, EricP wrote: > MitchAlsup1 wrote: >> John Savard wrote: >> >> >>> After all, RowHammer is caused by multiple rapid-fire accesses >>> to the >>> same address, or to related addresses, in memory. >> >> Yes, the write buffer in my DRAM controller is the L3 cache. >> Modified >> data in the L3 migrates towards DRAM as DRAM cycles permit, but >> there >> is no way to cause a line to be continuously be written into DRAM. >> If a modified line has migrated to DRAM, and it gets modified again >> in the L3, that 2nd write will not be performed until a refresh >> cycle >> on that DRAM is performed. >> >> Thus if one tries to RowHammer My 66000 DRAM, DRAM gets refresh >> cycle >> between each write. > > What does it do if L3 receives more writes than it has ways in a row, > does it stall evicts from L2? > > Lets say L3 is 4 way assoc and all four in a L3 row been updated, > then a 5th way in that same row is written from L2. > L3 has no place to hold that 5th way and it can't evict one > of the other 4 ways because that could cause rowhammer. Sidenote: With skewed associativity, one can use cuckoo/elbow caching, i.e., select a block for eviction from another "set" (which could then select a block from a different "set" to retain the block). (I prefer the term "cuckoo cache" because it uses the same mechanism as "cuckoo hash", though "The Elbow Cache: A Power-Efficient Alternative to Highly Associative Caches" (2003, Mathias Spjuth et al.) may be the first publication using the mechanism for processor caches. The concept is sufficiently rarely referenced that no name is widely known.) Skewed associativity already has a different concept of "set"; cuckoo replacement presents even more diverse replacement options. ("Overlaid" skewed associativity would seem to increase the chance that a better victim could be found sooner. Overlaid skewed associativity — my term — was proposed for variable page size TLBs in "Concurrent Support of Multiple Page Sizes On a Skewed Associative TLB" (André Seznec, 2003).) With more tags than blocks and at least some indirection (e.g., "The V-Way Cache : Demand-Based Associativity via Global Replacement", Moinuddin K. Qureshi et al., 2005), the effective associativity could be further increased. (Victim caches are a more widely known way of "extending" associativity.) > Seems to me that all it can do is stall the 5th write from L2 until > DRAM refresh rolls around and re-enables one of the pending L3 > writes, > which would back up victim evicts from L2. > Or maybe L3 has a small fully assoc emergency overflow buffer, > but still that could fill up too. Eventually writes would be stalled due to memory bandwidth even with no avoidance of row hammering. Avoiding row hammer would seem to cause extra delays in some cases, but that seems better than changing data. (Quality of service/resource allocation budgets might be important for avoiding denial of service given resource sharing.)