Projet de conversion busdma et SMPng
Table des mati�res
- But du projet
- Ressources et liens
- Etat du support des plates-formes
- Etat des pilotes interfaces r�seaux
- Etat des pilotes p�riph�riques de stockage
- Etat des pilotes p�riph�riques divers
- Etat de la documentation
But du projet
busdma
Les interfaces busdma permettent aux pilotes de p�riph�riques mat�riels d'op�rer sur une vari�t� de plateformes, �vitant le codage de m�thodes sp�cifiques � la plateforme dans ces pilotes. Ceci fait baisser le co�t de la maintenance des pilotes sur ces plateformes et accro�t les chances qu'un pilote fonctionne "tel que" pour une nouvelle plateforme. Modifier un pilote pour qu'il utilise busdma est relativement simple, mais requiert d'�tre familiaris� � la fois avec le pilote de p�riph�rique et les primitives busdma. Pour utiliser busdma dans FreeBSD, deux types de changements sont g�n�ralement requis : l'adaptation de busdma pour fonctionner sur toutes les plateformes et l'adaptation des pilotes pour utiliser cet environnement de travail. En tant que telle, l'information actuelle de ce projet de d�compose en support de la plateforme et en support des pilotes (tri�s par cat�gorie). L'ach�vement de ce travail requiert l'audit complet du syst�me de pilotes de p�riph�riques, puis la conversion des pilotes par priorit�s. Les pilotes doivent �galement utiliser les fonctions bus_space, et cette page est parfois utilis�e pour indiquer qu'un pilote a aussi besoin d'une conversion � bus_space.
INTR_MPSAFE
Les pilotes du mat�riel enregistrent leur traitement d'interruptions
avec la fonction bus_setup_intr()
. Positionner le flag
INTR_MPSAFE
informe le code d'interruption syst�me d'appeler
la routine d'interruption sans d�tenir le mutex "G�ant". Ceci permet d'obtenir
un gain significatif de performances sur les syst�mes multi-processeurs.
Les pilotes peuvent positionner ce flag m�me s'ils ne sont pas compl�tement verrouill�s tant que leur routine d'interruption prend soin de ne pas toucher aux autres structures de donn�es du pilote. Un moyen simple de r�aliser cela est de v�rifier et de vider les registres d'interruptions mat�rielles et ensuite ordonnancer le traitement des interruptions par une file d'attente de t�ches ou un thread noyau.
verrou SMPng
Les pilotes doivent utiliser des mutex et des verrous sx pour prot�ger leurs structures de donn�es et registres mat�riels des threads concurrents. Les op�rations mutex sont assez co�teuses, aussi une bonne strat�gie devrait combiner autant d'op�rations atomiques que possible durant l'acquisition d'un seul mutex.
s�curit� p!=a
Le support du PAE Intel requiert que les pointeurs et les repr�sentations physiques des adresses soient de tailles diff�rentes. Cela signifie que les pilotes doivent �tre �crits en utilisant vm_paddr_t ou bus_addr_t plut�t qu'en supposant que les adresses physiques puissent �tre repr�sent�es par un void *. De plus, le format des cha�nes de caract�res et les casts doivent �tre manipul�s avec soin.
La liste des t�ches ci-dessous ne pr�tend pas �tre exhaustive, mais repr�sente une s�rie de composants appropri�s et/ou importants du travail global. Le champ "Responsable" identifie un d�veloppeur qui a exprim� le d�sir d'�tre responsable pour mener � bien la t�che identifi�e; ce qui n'emp�che pas les autres d'y travailler, mais sugg�re que la coordination avec le responsable de cette partie est recommand�e pour �viter la duplication des travaux et optimiser l'avancement du travail. Si des travaux d�butent sur une nouvelle partie importante, ou non assign�e, il est conseill� d'envoyer un courrier �lectronique � Maxime Henrion pour v�rifier si des progr�s n'ont pas d�j� �t� faits.
La d�finition du champ date varie en fonction de l'�tat de la t�che. Pour les t�ches achev�es, elle se r�f�re � la date d'ach�vement ou du rapport d'ach�vement. Pour les t�ches en cours, elle se r�f�re � la date de la derni�re mise � jour de l'entr�e. Pour les t�ches bloqu�es, elle se r�f�re � la date � laquelle elle a �t� d�clar�e bloqu�e. Pour les nouvelles t�ches, elle se r�f�re � la date � laquelle elle a �t� ajout�e � la liste.
Les t�ches sont tri�es par �tat, puis par date.
Ressources et liens
Une liste de pages de manuel li�es � ce projet se trouve ici:
- Extensions d'adressage physique - pae(4)
- Interface de bus et de mapping DMA portable - bus_dma(9)
- Partie non portable de la m�moire virtuelle (VM) - pmap(9)
- Fonctions de gestion des ressources - rman(9)
Etat du support des plates-formes
T�che | Responsable | Derni�re mise � jour | Etat | D�tails |
---|---|---|---|---|
alpha | Bernd Walter | 14 Novembre 2005 | Fait | Probl�mes avec les syst�mes disposant d'une grande quantit� de m�moire |
amd64 | Peter Wemm | 1er Juillet 2003 | Fait | Pleinement support�. |
arm | Olivier Houchard | 23 D�cembre 2005 | Fait | Pleinement support�. |
ia64 | Marcel Moolenaar | 10 D�cembre 2002 | Fait | Probl�mes �ventuels avec les syst�mes disposant d'une grande quantit� de m�moire |
i386 | Sam Leffler | 9 D�cembre 2002 | Fait | Pleinement support�. |
powerpc | Peter Grehan | 15 Janvier 2003 | Fait | Pleinement support�. |
sparc64 | Thomas M�stl | 6 Janvier 2003 | Fait | Pleinement support�. |
Etat des pilotes interfaces r�seaux
Pilote | Responsable | Derni�re mise � jour | busdma | INTR_MPSAFE | SMPng locked | a!=p | Notes |
---|---|---|---|---|---|---|---|
if_an | � | 23 D�cembre 2005 | Inconnu | Inconnu | Inconnu | Inconnu | � |
if_ar | � | � | Pas fait | Pas fait | Pas fait | Pas fait | kvtop() |
if_bge | Bill Paul | 13 Avril 2004 | Fait | Fait | Fait | Fait | � |
if_cp | Roman Kurakin | 31 Octobre 2005 | Fait | Fait | Fait | Pas fait | � |
if_cs | Warner Losh | 23 D�cembre 2005 | Pas fait | Pas fait | Pas fait | Inconnu | N�cessite une conversion bus_space |
if_ct | Roman Kurakin | 31 Octobre 2005 | Fait | Fait | Fait | Pas fait | � |
if_cx | Roman Kurakin | 24 Juin 2004 | Fait | En progr�s | En progr�s | Pas fait | � |
if_dc | Maxime Henrion | 19 Ao�t 2005 | Fait | Fait | Fait | Fait | � |
if_de | Maxime Henrion | 17 Ao�t 2005 | Fait | Fait | Fait | Pas fait | � |
if_ed | Warner Losh | 23 D�cembre 2005 | Fait | Fait | Fait | Fait | � |
if_em | Prafulla S. Deuskar | 13 Avril 2004 | Fait | Fait | Fait | Fait | � |
if_en | Hartmut Brandt | 2 Novembre 2005 | Fait | Pas fait | Pas fait | Fait | Verrouillage pr�sent; pas encore marqu� INTR_MPSAFE? |
if_ep | Matthew N. Dodd,Warner Losh | 13 Avril 2004 | Fait | Fait | Fait | Fait | � |
if_ex | Warner Losh | 23 D�cembre 2005 | Fait | Pas fait | Pas fait | Fait | � |
if_fatm | Hartmut Brandt | 2 Novembre 2005 | Fait | Fait | Fait | Fait | � |
if_fwe | � | � | Pas fait | Pas fait | Pas fait | Pas fait | � |
if_fxp | Maxime Henrion | 13 Avril 2004 | Fait | Fait | Fait | Fait | � |
if_gem | Thomas M�stl | 31 Juillet 2005 | Fait | Fait | Fait | Pas fait | � |
if_hatm | Hartmut Brandt | 2 Novembre 2005 | Fait | Fait | Fait | Fait | vtophys() |
if_hme | Thomas M�stl | 30 Janvier 2005 | Fait | Fait | Fait | Fait | � |
if_idt | � | � | Pas fait | Pas fait | Pas fait | Pas fait | vtophys() |
if_le | Marius Strobl | 31 Janvier 2006 | Fait | Fait | Fait | Fait | � |
if_lge | � | 23 Novembre 2005 | Pas fait | Fait | Fait | Pas fait | vtophys() |
if_lmc | � | 11 F�vrier 2006 | Fait | Fait | Fait | Inconnu | Non test� sur PAE |
if_mn | � | � | Pas fait | Pas fait | Pas fait | Pas fait | vtophys(). Contactez Poul-Henning Kamp pour info/mat�riel svp. |
if_my | � | 17 Ao� 2005 | Pas fait | Fait | Fait | Pas fait | vtophys() |
if_nge | � | 17 Ao� 2005 | Pas fait | Fait | Fait | Pas fait | vtophys() |
if_nve | � | 23 Novembre 2005 | Pas fait | Fait | Fait | Pas fait | vtophys() |
if_pcn | David O'Brien | 19 Ao�t 2005 | Pas fait | Fait | Fait | Pas fait | vtophys() |
if_pdq | � | � | Pas fait | Pas fait | Pas fait | Pas fait | La plupart du busdma sauf vtophys(). |
if_re | � | 30 Mai 2005 | Fait | Fait | Fait | Fait | � |
if_rl | Bill Paul | 13 Avril 2004 | Fait | Fait | Fait | Pas fait | � |
if_sf | � | 19 Ao�t 2005 | Pas fait | Fait | Fait | Pas fait | vtophys() |
if_sis | Bill Paul | 13 Avril 2004 | Fait | Fait | Fait | Pas fait | � |
if_sk | � | 27 Avril 2006 | Fait | Fait | Fait | Pas fait | vtophys() |
if_sn | Warner Losh | 23 D�cembre 2005 | Fait | Fait | Fait | Fait | � |
if_snc | � | 23 D�cembre 2005 | Inconnu | Inconnu | Inconnu | Inconnu | uniquement sur pc98 (bien qu'il pourrait fonctionner avec de nombreux ponts cardbus) |
if_sr | � | � | Pas fait | Pas fait | Pas fait | Pas fait | vtophys() |
if_ste | � | 31 Ao�t 2005 | Pas fait | Fait | Fait | Pas fait | vtophys() |
if_ti | � | 13 D�cembre 2005 | Fait | Fait | Fait | Fait | � |
if_tl | � | 15 Septembre 2005 | Pas fait | Fait | Fait | Pas fait | � |
if_tx | Maxime Henrion | 19 Avril 2003 | Fait | Pas fait | Pas fait | N�cessite des tests | � |
if_txp | � | 22 Septembre 2005 | En progr�s | Fait | Fait | Pas fait | � |
if_vr | � | 23 Avril 2004 | Pas fait | Fait | Fait | Pas fait | � |
if_vx | � | 22 Septembre 2005 | Non Applicable | Fait | Fait | Pas fait | Utilise PIO pour copier les mbufs de/vers le mat�riel. |
if_wb | � | 22 Septembre 2005 | Pas fait | Fait | Fait | Pas fait | � |
if_wi | Sam Leffler, Warner Losh | 4 Novembre 2003 | Inconnu | Fait | Inconnu | Inconnu | Ce pilote a besoin de beaucoup de travail |
if_xe | Warner Losh | 23 D�cembre 2005 | Fait | Fait | Fait | Fait | � |
if_xl | Maxime Henrion | 13 Avril 2004 | Fait | Fait | Fait | Fait | � |
Etat des pilotes p�riph�riques de stockage
Pilote | Responsable | Derni�re mise � jour | busdma | INTR_MPSAFE | SMPng locked | a!=p | Notes |
---|---|---|---|---|---|---|---|
aac | Scott Long | 31 Janvier 2005 | Fait | Fait | Fait | Fait | Probl�me avec l'endianness. |
adv | � | 9 D�cembre 2002 | Fait | Pas fait | Pas fait | Pas fait | � |
aha | � | 13 Avril 2004 | Fait | En progr�s | En progr�s | Pas fait | Utilise BUSDMA, mais peut confondre l'adresse de bus avec l'adresse de l'h�te. |
ahb | � | 9 D�cembre 2002 | Fait | Pas fait | Pas fait | Pas fait | � |
ahc | Justin T. Gibbs | 31 Janvier 2005 | Fait | Pas fait | Pas fait | Fait | � |
ahd | Justin T. Gibbs | 31 Janvier 2005 | Fait | Pas fait | Pas fait | Fait | � |
aic | � | 23 D�cembre 2005 | Inconnu | Inconnu | Inconnu | Inconnu | N�cessite une �valuation |
amd | � | 14 D�cembre 2002 | Fait | Pas fait | Pas fait | Pas fait | � |
amr | Scott Long | 30 Janvier 2005 | Fait | Fait | Fait | Fait | � |
asr | � | 4 Janvier 2003 | Pas fait | Pas fait | Pas fait | Pas fait | vtophys(). N�cessite beaucoup de travail. Une nouvelle infrastructure I2O serait souhaitable. |
ata | S�ren Schmidt | 9 D�cembre 2002 | Fait | Fait | Fait | Fait | � |
buslogic | � | � | Pas fait | Pas fait | Pas fait | Pas fait | vtophys() |
ciss | � | 9 D�cembre 2002 | Fait | Pas fait | Pas fait | Pas fait | � |
ct | � | � | Pas fait | Pas fait | Pas fait | Pas fait | � |
dpt | � | � | Pas fait | Pas fait | Pas fait | Pas fait | vtophys() |
fdc | � | 23 D�cembre 2005 | Inconnu | Inconnu | Inconnu | Inconnu | N�cessite une �valuation |
ida | � | 9 D�cembre 2002 | Fait | Pas fait | Pas fait | Pas fait | � |
iir | � | 1er Mars 2006 | Fait | Fait | Fait | Fait | Le DMA 64-bit sans rebond est possible, mais n�cessite du travail. |
isp | � | 8 F�vrier 2003 | Fait | Fait | Pas fait | Pas fait | � |
ips | Scott Long | 30 Janvier 2005 | Fait | Fait | Fait | Fait | � |
mlx | Scott Long | 8 F�vrier 2003 | Fait | En progr�s | En progr�s | Pas fait | � |
mly | Scott Long | 8 F�vrier 2003 | Fait | En progr�s | En progr�s | Pas fait | � |
mpt | � | 9 D�cembre 2002 | Fait | Fait | Pas fait | Pas fait | � |
ncr | � | � | Pas fait | Pas fait | Pas fait | Pas fait | vtophys(). Contactez Poul-Henning Kamp svp, pour une �ventuelle source de mat�riel. |
ncv | � | � | Inconnu | Inconnu | Inconnu | Inconnu | N�cessite une �valuation |
nsp | � | � | Inconnu | Inconnu | Inconnu | Inconnu | N�cessite une �valuation |
pst | � | 11 Avril 2003 | Pas fait | Fait | Pas fait | Pas fait | vtophys() |
stg | � | 9 D�cembre 2002 | Fait | Pas fait | Pas fait | Pas fait | Au moins, il semble �tre ce qu'il devrait �tre. |
sym | � | 19 D�cembre 2002 | Fait | Pas fait | Pas fait | Pas fait | � |
trm | Olivier Houchard | 9 D�cembre 2002 | Fait | Pas fait | Pas fait | Pas fait | � |
twe | � | 9 D�cembre 2002 | Fait | Pas fait | Pas fait | Pas fait | � |
wds | � | 2 F�vrier 2005 | Fait | Pas fait | Pas fait | Pas fait | � |
Etat des pilotes p�riph�riques divers
Pilote | Responsable | Derni�re mise � jour | busdma | INTR_MPSAFE | SMPng locked | a!=p | Notes |
---|---|---|---|---|---|---|---|
agp | � | 31 Octobre 2005 | Pas fait | Pas fait | Pas fait | Pas fait | vtophys() |
bktr | Olivier Houchard | 15 Janvier 2003 | En progr�s | Pas fait | Pas fait | Pas fait | vtophys() |
digi | � | � | Pas fait | Pas fait | Pas fait | Pas fait | vtophys() |
drm | Eric Anholt | 27 Octobre 2003 | En progr�s | Fait | Fait | En progr�s | vtophys(). Le verrouillage pourrait b�n�ficier d'une revue. |
fb | � | � | Pas fait | Pas fait | Pas fait | Pas fait | vtophys() |
firewire | Hidetoshi Shimokawa | 17 Avril 2003 | Fait | Pas fait | Pas fait | Fait | vtophys() |
hfa | � | � | Pas fait | Pas fait | Pas fait | Pas fait | vtophys() |
hifn | Sam Leffler | 13 Avril 2004 | Fait | Fait | Fait | Pas fait | � |
musycc | � | � | Pas fait | Pas fait | Pas fait | Pas fait | vtophys(). Contactez Poul-Henning Kamp pour info/mat�riel svp. |
pcm | Olivier Houchard | 20 F�vrier 2003 | Fait | Fait | Pas fait | Pas fait | � |
ubsec | Sam Leffler | 13 Avril 2004 | Fait | Fait | Fait | Pas fait | vtophys() est utilis� par printf en d�buggage. |
usb | John-Mark Gurney | 24 Juillet 2003 | Fait | Pas fait | Pas fait | N�cessite des tests | a!=p devrait �tre bon, mais n�cessite des tests plus pouss�s. |
Etat de la documentation
T�che | Responsable | Derni�re mise � jour | Etat | Notes |
---|---|---|---|---|
Pages de manuel pour l'API busdma | Hiten Pandya | 15 Janvier 2003 | Fait | � |