Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: GentooForum.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

14.02.2008, 08:47

Maximale DMA Größe

Hallo zusammen,

ich habe eine PCIe Karte die per DMA speicher anfordert. Die maximale Speichergröße die ich jedoch bekomme sind ca 3,2 MB, obwohl ich 32 MB durch den Treiber anfordern lasse. Laut Hersteller ist das eine Beschränkung im Linux Kernel die, per Default auf 4MB steht, jedoch geändert werden kann. Allerdings sagt er nicht wo. Hat evtl jemand von euch eine Idee wo man das Einstellen kann? Habe schon in den Kernelquellen gesucht allerdings noch nichts gefunden.

Danke im Vorraus

2

14.02.2008, 17:13

Hallo Mahr,

Kannst Du uns bitte etwas mehr Infos geben?? Was für eine Karte. Deine Kernel Config.
Wie Du es überprüft hast (Sprich die Ausgabe).


Viele Grüße

3

18.02.2008, 16:22

Also, ich habe einen Kernel 2.6.22-gentoo-r5. Die karte ist selber gebaut mit nem PLX-Chip (PE8311) PLX-Treiber des Herstellers und der zugehörigen API des Herstellers. In der API kann man einstellen wieviel DMA-fähiger Speicher reserviert werden soll. Dieser Wert ist standartmäßig auf 64 KB eingestellt. Ich habe ihn auf 32 MB erhöht. Wenn man jetzt den reservierten Speicher abfrägt, dann sind das nur ca 3,2 MB. (Differenz der Start- und Endadresse). Das wichtige ist, dass der Speicher zusammenhängend ist, also keine virtuellen Seiten o.ä. besitzt.

Viele Grüße

4

18.02.2008, 16:38

<OT>
Hättest Du einen Link zu dem Hersteller /API?
</OT>
Meine Rechtschreibfehler sind gewollt und unterliegen dem Copyright des Verfassers, es sei denn, sie sind explizit unter die GPL gestellt .....

Außerdem sind sie ein Ausdruck der Persönlichkeit des Schreibers!

5

19.02.2008, 07:45

Hier der Link:

http://www.plxtech.com/products/expresslane/pex8311.asp

Und hier ein auszug aus den Support Release Notes:

Zitat



PlxPci_PhysicalMemoryAllocate() API Call Limitations

The PLX API call PlxPci_PhysicalMemoryAllocate() is used to allocate a physically contiguous page-locked buffer, typically for DMA operations. In Linux, the maximum size of a single buffer is typically limited to 4MB and is controlled by a kernel definition. To increase this maximum, the definition must be modified and the kernel must be rebuilt.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Mahr« (19.02.2008, 07:50)


6

20.02.2008, 11:54

Ich habe jetzt eine Lösung gefunden:

In den Kernel-quellen in der Datei include/linux/mmzone.h den Eintrag MAX_ORDER erhöhen. Der hier angegenbene Wert 11 entspricht etwa 4 MB, und entspricht intern einer 2er-Potzenz.

7

20.02.2008, 12:36

Hallo Mahr,

wie Bist Du auf die Lösung gekommen?? Hast Du das bei Google gefunden oder einfach mal selber in den Quellen geschaut??

PS:Bitte noch das Thema auf gelöst setzen.


Viele Grüße

8

20.02.2008, 15:05

Durch Suchen im Quellcode ;(


P.S.: Wie schließe ich das Thema. so wie es in der Hilfe gezeigt wird funktioniert es nicht.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Mahr« (20.02.2008, 15:19)