Alle 16:14, mercoledì 22 dicembre 2004, Davide Alberani ha scritto:
> E` _da bestie_
non sai quante :-@
> , ma sei sicuro di non avere i float?
> Nel senso, e` vero che i registri della FPU non
> vengono salvati (per i processi kernel), d'altra
> parte questa cosa mi risulta sia "forzabile".
> Ti giochi portabilita` e devi stare attento a
> brutte malattie tipo la preemption, immagino.
>
> Posto che non abbia detto un mare di stupidaggini,
> vedi la funzione kernel_fpu_begin ed amici, in
> arch/i386/i387.c
Stavo gia' battendo questa strada, ma avendo problemi volevo sapere se
con un demone la cosa sarebbe stata piu' facile.
Per la cronaca:
[CODE]
...
#include <click/cxxprotect.h>
CLICK_CXX_PROTECT
#if __i386__
#include <asm/i387.h>
#endif
CLICK_CXX_UNPROTECT
#include <click/cxxunprotect.h>
...
kernel_fpu_begin();
... Log() ...
kernel_fpu_end();
...
[/CODE]
ma quando lancio click:
/usr/local/lib/click.o: unresolved symbol kernel_fpu_begin
click-install: '/sbin/insmod /usr/local/lib/click.o' failed
La funzione e' presente in /boot/System.map quindi non mi spiego
l'arcano.
Ho provato anche ad esportarla aggiungendo
-------------------------
#include <asm/i387.h>
EXPORT_SYMBOL(kernel_fpu_begin);
-------------------------
in /usr/src/linux/kernel/ksyms.c
ora in System.map ora ho
kernel_fpu_begin
__kstrtab_kernel_fpu_begin
__ksymtab_kernel_fpu_begin
ma click non ne vuole sapere di funzionare.
> Altra cosa da tentare e` sbirciare il codice di chi ha gia`
> avuto simili problemi; non escludo esista un modo per
> riscrivere il tutto con solo numeri interi (al netto di
> approssimazioni non significative, per dire).
chissa' che San Google non si ricordi di essere prossimi al Natale...
> Prendi tutto con le molle: IANAKA (I Am Not A Kernel Acaro).
/me http://www.kernelnewbies.org/
--
Michele Mordenti
http://xoomer.virgilio.it/michele.mordenti
|