[OSy] ddisk bug v MSIMe

Milan Burda milan.burda at gmail.com
Tue Dec 11 14:45:59 CET 2007


Dobry den,
myslim, ze som ddisk pouzival spravne. Zapisal som do prislusnej adresy v pamati
cislo sektoru, fyzicku adresu a do statusu ze chcem citat.
ked som si prikazom "disk info" nechal vypisat jeho stav, tak boli prislusne
registre nulove, cize bol disk v chybovom stave a vobec nereagoval na prikazy.

vzhladom na to ze pri zapise do mapovanej pamate ddisku sa vola funkcia ddisk_write,
v ktorej je na zaciatku:

  if (dd->disk_type == DISKT_NONE)
    return;

a kedze dd->disk_type sa po inicializacii neprehodilo z DISKT_NONE na DISKT_MEM,
tak bola chyba na strane ddisk a nie na nasej strane.

taktiez pri parsovani parametra filename napr. funkcie "disk load filename.bin",
kym sa pouzivalo:
const char *const filename = parm->token.tval.s;
namiesto:
const char *const filename = parm_str(parm);

mi MSIM hlasil ze dany subor neexistuje, pricom bol na disku. po nahradeni za uvedeny
param_str(parm), to uz fungovalo v poriadku. tento isty kod je pouzity aj v mem.c

static bool
mem_load( parm_link_s *parm, device_s *dev)

{
  mem_data_s *md = dev->data;
  const char *const filename = parm_str( parm);
...


myslim si teda, ze moj patch je opodstatneny a vsetky zmeny, ktore aplikuje maju zmysel.
je tam avsak este stale nejaky problem so stavom disku, ktory pise prikad "disk info",
kedze ho mam spravne nainicializovany v msim.conf, v kerneli som uspesne precital sektor, ktory som chcel

disk info:

[msim] dd
[  name  ] [  type  ] [ parameters...
disk       ddisk      address:0xfffff030 intno:2 size:512
                      type:Not enough memory for device inicialization
                      regs(mem:0x00000000 secno:0 status:0x0 ig:0)

msim.conf

# device - disk
add ddisk     disk      0xfffff030 2 512
disk load "bin/process.bin"


mohli by ste teda podla tohto opravit kod MSIMu?
pripadne ak nieco robime naozaj zle, napisat ze co?

s pozdravom
Milan Burda

PS: ak moja reakcie vyznela ofenzivne, tak sa ospravedlnujem,
len ma prekvapila odpoved typu my robime nieco zle, kedze nam ddisk pri pouziti presne podla navodu
nefungoval, pokial sme neurobili zmeny accoring to nas patch file :(

-----Original Message-----
From: osy-bounces at dsrg.mff.cuni.cz [mailto:osy-bounces at dsrg.mff.cuni.cz] On Behalf Of Viliam Holub
Sent: 10. December 2007 16:40
To: Operating Systems Course
Subject: Re: [OSy] ddisk bug v MSIMe


	Dobry den,

On 10. Dec (Monday) v 16:14:32 +0100 2007, Milan Burda wrote:
> dnes som sa pokusal rozbehat citanie z diskoveho zariadenia (ddisk) v 
> MSIMe, ked som si bol isty, ze chyba nieje na nasej strane, nazrel som 
> do zdrajakov MSIMu a objavil som problem v ddisk.c, kde (podla 
> prilozeneho
> patchu)
> 
> 1) chybal parameter size v strukture specifikujuce parametre funkcie 
> inicializujucej device
> 2) po naalokovani pamate v ddisk_generic() sa nenastavil disk_type na 
> DISKT_MEM, cize pamat sa stale tvarila ako neinicializovana (este tam 
> je nejaky problem, lebo to stale pise "type:Not enough memory for 
> device inicialization" aj je uz disk naincializovany a funguje)
> 3) paramater filename bol ziskany nespravnym sposobom 
> "parm->token.tval.s" namiesto "parm_str(parm)", tak ako sa to deje v 
> inych moduloch pri stringovom parametri vo funkciach ddisk_fmap(), 
> ddisk_load() a ddisk_save()
> 4) funkcia ddisk_generic() mala zbytocny parameter size, ktory sa v 
> tele funkcie nepouzival, lebo velkost disku je uz ulozena v jeho 
> strukture od inicializacie. tento parameter bol takisto v mem.c v tej 
> istej funkcii, pricom tam sa takisto velkost pamate zadava pri 
> inicializacii pamatoveho bloku
> 
> po aplikovani tychto fixov uz diskove zariadenie bez problemov funguje, teda minimalne v pripade pouzitia funkcie "disk load filename.bin", mmap som neskusal.
> 
> dufam ze tento poznatok usetri problemy ludom, ktori maju 3. rozsirene zadanie.
> a takisto tymto prosim pana Holuba, aby sa na tento problem pozrel, 
> dakujem :)

	zbeznym pohledem co pisete se mi zda, ze se snazite ddisk pouzit jinym zpusobem nez je zamysleno. Prohlenu si co posilate a zkusim z toho neco vyvodit (treba i lepsi chybove hlaseni).

	Prijemny den,
		VH.

--
Viliam Holub
http://dsrg.mff.cuni.cz/~holub/
Distributed Systems Research Group
Department of Software Engineering
Faculty of Mathematics and Physics
Charles University, Czech Republic

_______________________________________________
OSy mailing list
OSy at dsrg.mff.cuni.cz
https://dsrg.mff.cuni.cz/mailman/listinfo/osy





More information about the NSWI004 mailing list