I’ll let Fred answer the other points you make - which might help explain what we’re finding.. But - for this one…
The idea for now is to keep things simple and have a thread per CPU and a ‘cache’ per thread. (Later we can look at reducing the caches). What we mean by a ‘cache’ needs to be clearer. I dont think ‘cache’ is a helpful word, but it’s the one thats been used elsewhere… anyway Actually - what we (think we) mean is this first_tb list (in each page block). In other words, as things stand, each CPU that is going to use this page is also going to build it’s own translation block list. We end up with pages x CPU first_tb lists… Does that make sense? Cheers Mark. > On 29 Jan 2015, at 16:24, Peter Maydell <peter.mayd...@linaro.org> wrote: > >> + TranslationBlock *first_tb[MAX_CPUS]; > > Do we really need to know this for every CPU, or just for > the one that's using this PageDesc? I am assuming we're going to make > the l1_map be per-CPU. +44 (0)20 7100 3485 x 210 +33 (0)5 33 52 01 77x 210 +33 (0)603762104 mark.burton