HewlettPackard / quartz

Quartz: A DRAM-based performance emulator for NVM
https://github.com/HewlettPackard/quartz
Other
158 stars 66 forks source link

Can DRAM+NVM mode run on Sandy Bridge ? #34

Open Gumi-presentation-by-Dzh opened 5 years ago

Gumi-presentation-by-Dzh commented 5 years ago

My cpu is Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60GHz and has two socket.

When I load the module , it find that this is Sandy Bridge.

Do Quartz support D+N mode in Sandy Bridge?

ParkWANG commented 5 years ago

Hi. May I ask have you built up the enviroment? I met a problem "(tee: /sys/bus/event_source/devices/cpu/rdpmc: No file or folder of this type)". My hardware: Intel Xeon 3 and Linux 4.4.

I investigated and found "allowing user-mode RDPMC access is often disabled in virtual machines". "https://software.intel.com/en-us/forums/software-tuning-performance-optimization-platform-monitoring/topic/783505"

May i know whether you implemented Quartz on a virtual machine or real local machine? Thank you so much.

ParkWANG commented 5 years ago

My cpu is Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60GHz and has two socket.

When I load the module , it find that this is Sandy Bridge.

Do Quartz support D+N mode in Sandy Bridge?

Hi. May I ask have you built up the enviroment? I met a problem "(tee: /sys/bus/event_source/devices/cpu/rdpmc: No file or folder of this type)". My hardware: Intel Xeon 3 and Linux 4.4.

I investigated and found "allowing user-mode RDPMC access is often disabled in virtual machines". "https://software.intel.com/en-us/forums/software-tuning-performance-optimization-platform-monitoring/topic/783505"

May i know whether you implemented Quartz on a virtual machine or real local machine? Thank you so much.

Gumi-presentation-by-Dzh commented 5 years ago

First, we don't build Quartz on virtual machine but on real local machine.

Second, please read this in ReadME file

An additional configuration step may be required depending on the Linux Kernel version. This emulator makes use of rdpmc x86 instruction to read CPU counters. Before kernel 4.0, when rdpmc support was enabled, any process (not just ones with an active perf event) could use the rdpmc instruction to access the counters. Starting with Linux 4.0 rdpmc support is only allowed if an event is currently enabled in a process's context. To restore the old behavior, write the value 2 to /sys/devices/cpu/rdpmc if kernel version is 4.0 or greater

ParkWANG commented 5 years ago

/sys/devices/cpu/rdpmc

Thank you. Yes. I tried. But "/sys/devices/cpu/rdpmc" is unaccessible (dose not exist). May I know your hardware environment? Thank you

Gumi-presentation-by-Dzh commented 5 years ago

We run Quartz successfully on 1.Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60GHz 20-core with Linux kernel 3.11.0 2.Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz with Linux 4.4.0-31-generic #50~14.04.1-Ubuntu 3.Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60GHz with Linux 2.6.32-220.el6.x86_64

Check if your kernel is modified, and you can also find some information on Stack Overflow if the rdpmc isn't exist.

Gumi-presentation-by-Dzh commented 5 years ago

For Xeon v4(Broadwell) we change some soure code to adjust it.

ParkWANG commented 5 years ago

Thanks a lot. Could share how you modfiy the source code to support Xeon v4(Broadwell)?

Gumi-presentation-by-Dzh commented 5 years ago

It will take a while for the release, so you can pay attention.

ParkWANG commented 5 years ago

It will take a while for the release, so you can pay attention.

I refer the issue 4, and trying to modify the files in /src/cpu/. still going-on. Thanks a lot. If you dont mind, can add my wechat (425342972). Seems that we are doning the simialr research. Looking forward communications if you dont mind.

ParkWANG commented 5 years ago

It will take a while for the release, so you can pay attention.

Thanks to your help. I already modified the source code to match Intel(R) Xeon(R) CPU E5-2680 v4. Now the simulator seems to work properly. But, there is another issue: From README file, I noticed the set the "Set the LD_PRELOAD and NVMEMUL_INI environment variables to point respectively to the emulators' library and the configuration file to be used. The LD_PRELOAD is used for automatically loading the emulator's library when the user application is executed. "

However, could I know your set of these two environment variables, as I didnt set them but the tests from benchmark-test folder are executed expectably. Thank you

junghan0611 commented 5 years ago

@ParkWANG @Gumi-presentation-by-Dzh Could share how you modify the source code to support Xeon v4 (Broadwell) ?

Gumi-presentation-by-Dzh commented 5 years ago

@ParkWANG Recently we will post, please pay attention.