Processors
Intel® Processors, Tools, and Utilities
14539 Discussions

RAM to RAM DMA

JJohn51
Novice
3,776 Views

Does any Intel Gladden Ivy Bridge supports RAM to RAM DMA?

How I can determine support of that technology by my CPU from Linux OS?

9 Replies
ЕИльч
Beginner
1,181 Views

I have the exact the same question. This is a very poorly covered in available documentation.

0 Kudos
CCris2
New Contributor II
1,181 Views

Hi,

I think found something that can help you determine if it does or not support : http://stackoverflow.com/questions/37766230/how-to-transfer-data-via-dma-from-ram-to-ram linux - How to transfer data via DMA from RAM to RAM? - Stack Overflow

From what I know all Intel CPUs should support it as is a very common operation.

0 Kudos
idata
Employee
1,181 Views

Hello, All:

Ronin thank you for your input.

Ficus, could you please provide me with your processor model?

Regards,

Amy.

0 Kudos
idata
Employee
1,181 Views

Hello, /thread/105465 Ficus:

I just wanted to check on your thread; did the previous input solve your inquiry? If you still require assistance please let me know.

Regards,

Amy.

0 Kudos
JJohn51
Novice
1,181 Views

Hello,

No problem didn't solved. It's CPUINFO output

processor : 0vendor_id : GenuineIntelcpu family : 6model : 86model name : Intel(R) Xeon(R) CPU D-1527 @ 2.20GHzstepping : 3microcode : 0x700000ccpu MHz : 2194.870cache size : 6144 KBphysical id : 0siblings : 8core id : 0cpu cores : 4apicid : 0

initial apicid : 0

fpu : yes

fpu_exception : yes

cpuid level : 20wp : yesflags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdt scp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc ap erfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch ida arat epb xsaveopt pln pts d therm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 sm ep bmi2 erms invpcid rtm rdseed adx smapbogomips : 4389.74clflush size: 64

cache_alignment : 64

address sizes : 46 bits physical, 48 bits virtual

power management:

processor : 1vendor_id : GenuineIntelcpu family : 6model : 86model name : Intel(R) Xeon(R) CPU D-1527 @ 2.20GHzstepping : 3microcode : 0x700000ccpu MHz : 2194.870cache size : 6144 KBphysical id : 0siblings : 8core id : 1cpu cores : 4apicid : 2

initial apicid : 2

fpu : yes

fpu_exception : yes

cpuid level : 20wp : yesflags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdt scp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc ap erfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch ida arat epb xsaveopt pln pts d therm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 sm ep bmi2 erms invpcid rtm rdseed adx smapbogomips : 4389.74clflush size: 64

cache_alignment : 64

address sizes : 46 bits physical, 48 bits virtual

power management:

processor : 2vendor_id : GenuineIntelcpu family : 6model : 86model name : Intel(R) Xeon(R) CPU D-1527 @ 2.20GHzstepping : 3microcode : 0x700000ccpu MHz : 2194.870cache size : 6144 KBphysical id : 0siblings : 8core id : 2cpu cores : 4apicid : 4

initial apicid : 4

fpu : yes

fpu_exception : yes

cpuid level : 20wp : yesflags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdt scp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc ap erfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch ida arat epb xsaveopt pln pts d therm tpr_shadow vnmi flexpriority ept ...
0 Kudos
CCris2
New Contributor II
1,181 Views

Here is a test how to test if it supports ram to ram:

http://lxr.free-electrons.com/source/drivers/dma/dmatest.c Linux/drivers/dma/dmatest.c - Linux Cross Reference - Free Electrons

and how to test is here: https://www.kernel.org/doc/Documentation/dmaengine/dmatest.txt https://www.kernel.org/doc/Documentation/dmaengine/dmatest.txt

0 Kudos
JJohn51
Novice
1,181 Views

Ronin,

That test didn't work, because there aren't any visible DMA channels (folder /sys/class/dma/ is empty). I don't know how to determine, it's hardware doesn't support that DMA type or driver doesn't work properly (ioatdma driver was insmoded)

0 Kudos
CCris2
New Contributor II
1,181 Views

Ok, I checked why is not working and I think that they changed the kernel and each device has it's own dma channel, assigned dynamically. I think only if you have an old device that uses old dma style will show a dma channel in that directory.

They changed the way memory is assigned, because before, each device driver was build with some default memory allocations (assigned by the driver developer), and because of that 2 devices could end up using the same memory space and BSOD . Now the kernel takes care of that.

There are some benchmarks that show you the transfer speed memory to memory, and the speed is the same as you were copying something from memory or on the memory and I think that operation is done internally, using only the memory controller.

0 Kudos
idata
Employee
1,181 Views

Ronin again thank you for your input, and let's hope this can help /thread/105465 Ficus.

 

Regards,

Amy.

0 Kudos
Reply