On Sun, Jan 30, 2011 at 01:05:54PM -0700, Marc Jones wrote:
I think that the locking can be added via the BSPs cache. All multicore should use CAR and it is a matter of adding it where it won't get stepped on by the normal use of CAR. For AMD fam10, the sysinfo setup would need to be fixed up.
Marc
That is a little over my head, I believe. I thought in general the cache was a different memory for each core (let alone each node). My phenom has L3 cache common to all cores but I thought romstage is not using it.
And I guess the functionality is slightly different :
with muxing you get the node number in the output so you can format things in columns, etc. And it is not dependent on the architecture (except to find out the core number to use as buffer id). With locking you just separate output but don't know which core it comes from (but it becomes feasible to include the core number in the messages where appropiate, and you don't need demuxing, get less serial traffic...).
locking in romstage might be useful for other things beyond console output, though.
So both approaches have advantages. I'm just not sure how to implement locking. That's the main reason I didn't, even if some comment suggested it somewhere. Secondary excuses were that it seemed less alteration of the runtime behaviour not to lock, and that I could also set it up to filter out some output.