On Wed, Mar 7, 2012 at 12:27 PM, Yingying Tian <[email protected]> wrote:

> To whom it may concern,
>
> Thank you for your help. I searched previous Q&A and found out:
>
> - Context::loadvirt  - Load max 64bit data from given virtual address
> - Context::loadphys - Load max 64bit data from given physical address
> - Context::storemask_virt - Store max 64bit data to given virtual address
> and it uses mask to write selected bytes
> - Context::copy_from_user - Load instructions from given virtual address
> (only used for instructions)
>
> So does it mean that I can use the physical address
> (memoryRequest->get_physical_address() ) stored in memoryRequest to fetch
> the real data that should be stored in each cache (eg. L2) by calling
> loadphys(Waddr addr, bool internal, int sizeshift) in the corresponding
> cache code? If not, can anyone tell me how to call the related function in
> a right way? Thank you in advance.
>
> Do not use loadphys function. Its *not* used for loading data from VM.  To
read data you'll need virtual address and use that address follow these
steps:

1. Check if your virtual address has valid TLB translation or not by
calling 'check_and_translate' function and check 'exception' flag.
2. If it has a valid translation then use that virtual address and call
'loadvirt' function to read 64 bit data.

- Avadh

>
> Thanks,
> Yingying
>
>
>
> On Tue, Mar 6, 2012 at 8:04 PM, Paul Rosenfeld <[email protected]>wrote:
>
>> I'm hazy on the details at this point since it's been a while since I've
>> looked at the code, but the main function you want is
>> in ptlsim/sim/ptl-qemu.cpp:
>>
>> int Context::copy_from_user(void * target, Waddr source, int bytes,
>> PageFaultErrorCode& pfec, Waddr& faultaddr, bool forexec)
>>
>> This function calls the low level ldub_user and ldub_kernel functions
>> which actually go into QEMU's memory space and pull out the data. The
>> funtion then copies the bytes to the target buffer that you provide.
>>
>> You can grep around the code to see an example for how to use it. One
>> such example can be found when marss loads instructions to be executed into
>> the trace buffer in ptlsim/x86/decode-core.cpp:1998
>>
>> Hopefully that's enough information to get you started.
>>
>>
>>
>>
>> On Tue, Mar 6, 2012 at 8:28 PM, Yingying Tian <[email protected]> wrote:
>>
>>> Hi Paul,
>>>
>>> Thank you for your reply. Yes I'd like to know more about accessing real
>>> data on Marss. It would be great if you could find the function and related
>>> information for me. Thank you in advance.
>>>
>>>
>>> Thanks,
>>> Yingying
>>>
>>>
>>> On Tue, Mar 6, 2012 at 6:43 PM, Paul Rosenfeld <[email protected]>wrote:
>>>
>>>> The caches only store tag information. The ptlsim portion of the
>>>> simulator mostly deals with timings, so the model only really needs to know
>>>> if there was a cache hit or a cache miss.
>>>>
>>>> The data is available by calling into QEMU. There are some low level
>>>> load functions that could be used to load the actual data given. At the
>>>> moment I'm having trouble remembering which type of address you need (I
>>>> believe it is host virtual) to get access to this data. If you need more
>>>> detail I can try to find the function for you.
>>>>
>>>> On Tue, Mar 6, 2012 at 5:54 PM, Yingying Tian <[email protected]>wrote:
>>>>
>>>>> To whom it may concern,
>>>>>
>>>>> Is it possible to get the real data (cache block) fetched from the
>>>>> main memory? As I know so far, each request contains core-id, physical
>>>>> address, instruction/data type, etc. If I expect to check the content of
>>>>> cache blocks, are there any ways to get the data information?
>>>>>
>>>>>
>>>>> Thanks,
>>>>> Yingying
>>>>>
>>>>> _______________________________________________
>>>>> http://www.marss86.org
>>>>> Marss86-Devel mailing list
>>>>> [email protected]
>>>>> https://www.cs.binghamton.edu/mailman/listinfo/marss86-devel
>>>>>
>>>>>
>>>>
>>>
>>
>
> _______________________________________________
> http://www.marss86.org
> Marss86-Devel mailing list
> [email protected]
> https://www.cs.binghamton.edu/mailman/listinfo/marss86-devel
>
>
_______________________________________________
http://www.marss86.org
Marss86-Devel mailing list
[email protected]
https://www.cs.binghamton.edu/mailman/listinfo/marss86-devel

Reply via email to