Review Board 2.0.15

ruby: PerfectCache changes so that we can create with new

Review Request #3429 - Created April 4, 2016 and updated

Brandon Potter
Changeset 11431:88018e899f82
ruby:  PerfectCache changes so that we can create with new

Posted (April 6, 2016, 2:47 p.m.)

Is this fixing a problem? Functional? Performance?

  1. This is to make this class' ENTRY conform with the changes to the other ENTRY types in the rest of the Ruby system. The ENTRY types were made into pointers because of cases where assignments were happening and then it was trying to copy uninitialized DataBlks into other uninitialized DataBlks. There's an assertion in DataBlk that prevents this from happening. With the initialization I added for DataBlocks and WriteMasks, the initialization happens after the object is constructed anytime (hopefully everytime) a DataBlk gets constructed in Ruby. So, it might not be necessary for these ENTRY objects to be pointers anymore, but it seems daunting to go back and make those changes and then find out that they were actually necessary because of 'X'. Right now, it works that the entries are accessed as pointer types.

  2. Ok, could you add a bit of a summary to the patch?

  3. Also, do these patches all work on their own? If not they should be merged.

  4. I'm still not totally clear on this patch. Is this just one of the follow-on patches in the series that you posted? Or is this an issue that existed before? I agree that PerfectCacheMemory should align with the other types. If this is something that existed before, can you break it into two parts, one that fixes the issue and one that changes PerfectMemory based on the other patches (probably in the same patch that changes the other types)?

    On a seperate note, and I should probably send out an new email to gem5-dev on this, I think we should take inspiration from the kernel and mark series of dependent patches. For instance <commit message> [PATCH 2/8]. Example:

Ship it!
Posted (April 14, 2016, 10:05 a.m.)

We really should be using the same interface for CacheMemory, DirectoryMemory, and PerfectCacheMemory, and this is a step in the right direction. Thanks for tackling this!