[OSy] Problem se statickou strukturou
Martin Cetkovský
martin at alikuvkoutek.cz
Wed Dec 5 14:10:52 CET 2007
Ahoj,
mame problemy se statickou strukturou, konkretne pri inicializaci spinlocku. Prikladam relevantni informace.
static struct{
...
struct spinlock firstlock;
struct spinlock secondlock;
} someglobals;
struct spinlock{
volatile int value;
};
void spinlock_init(struct spinlock * lock)
{
printk_locked("%x, %x\n", lock->value, SPINLOCK_UNLOCKED);
lock->value = SPINLOCK_UNLOCKED;
printk_locked("%x\n", lock->value);
}
Inicializaci spinlocku volame nasledovne.
spinlock_init(&someglobals.firstlock);
spinlock_init(&someglobals.secondlock);
printk_locked("after %x, value %x", &someglobals.secondlock, someglobals.secondlock.value);
Vypsane hodnoty jsou nasledujici (pricemz u nekolika predchozich jsou hodnoty spravne - 0x0 misto 0xFF*):
0xFFFFFFFF, 0x0
0xFFFFFFFF
0xFFFFFFFF, 0x0
0xFFFFFFFF
after 0x8001FFD8, value 0xFFFFFFFFA
Bezime na single-CPU a nastava jiz pri inicializaci pameti, cili scheduler ani malloc se dosud nemaji sanci projevit.
Mate nekdo tip, co s tim je? Nejak to nemuzeme najit.
Diky,
Martin Cetkovský
More information about the NSWI004
mailing list