|
View:
New views
7 Messages
—
Rating Filter:
Alert me
|
|
|
Fpage mapping in L4 PistachioDear sir:
For inter-process data copying, I am using Flex page mapping conveniently. However, I noticed copy failure when the Fpage is large. My program outline is as follows: (Code is only explanatory, not real one) Let me call the mapping side process as Mapper, and mapped side process as Mappee. ==== (1) Mappee ================== (1-1) Receive window Fpage: mappeefpage: L4_Fpage(0x40000000, 0x100000) i.e. 1 mega bytes recv window from 1 Giga ==== (2) Mapper =================== (2-1) Buffer to send/receive data char xbuf[XSIZE]; // This buffer happened being allocated at 0xA26820. The Flex page which cover this buffer is used for mapping. strncpy() is used for string copying. ====== (3) Situation ======== (3-1) WHEN XSIZE <= 6112: No problem Fpage of Mapper: mapperfpage: L4_Fpage(0xA26000, 0x2000) with R/W permissions MapItem: mapitem: L4_MapItem(mapperfpage, 0) i.e. send-base is 0. Fpage is mapped, and data is rightly copyed from Mappee to Mapper. (3-2) WHEN XSIZE > 6112: COPY FAILED Fpage of Mapper: mapperfpage: L4_Fpage(0xA20000, 0x10000) with R/W permissions // To cover the buffer, Fpage becomes large ! // as the buffer happened to be at 0xA26820 ! MapItem: mapitem: L4_MapItem(mapperfpage, 0) i.e. send-base is 0. ==> NO DATA COPIED. ( Cf. 0xA26820 + 6112 == 0xA28000. &xbuf[6112] is 0xA28000) ===== (4) Question ====== Am I misunderstanding the fpage mapping usage, or are there some restriction or limitation in L4 flex page mapping ? Thank in advance. --- K. Maruyama National Institute of Informatics, Japan |
|
|
Afterburner-Wedge Compile Error - Need Help!Hi All l4ka mailing list members, i had read most of the post here and i have other problem than what discuss here so far. ( i hope) i compiling afterburner with pistachio in 2 machine. (one my notebook with Intel VT and my desktop with Intel Pentium 4 (without VT). On my laptop, the error is: ========================== before that i configure the kernel to do: -compile on pentium 3 (i dont know why people say with core 2 due, need to use pentium 3) -l4ka with VMX (hardware virtualization) -use custom version of pistachio (debug) -build l4ka wedges -with guest kernel linux 2.6 -with vga boot option -when i enable the options of wedge-use-real device this error occur ===> common/crtend.cc ===> l4ka-resourcemon Configuring the Afterburn wedge-l4ka-passthru-p3 #@echo "Options WEDGE_L4KA DEVICE_PASSTHRU DEVICE_APIC=n ARCH_IA32=y L4KA_VT=y L4KA_INTERFACE_DIR=/root/afterburner/.//l4ka-interfaces L4KA_PISTACHIO_USER=/root/afterburner/usr DEVICE_PCI_FORWARD=n CPU_P3" make[1]: Entering directory `/root/afterburner/build/afterburn-wedge-l4ka-passthru-p3' Can't find tkinter support, falling back to curses mode... Rewriting Makeconf.local ... make[1]: Leaving directory `/root/afterburner/build/afterburn-wedge-l4ka-passthru-p3' Building the Afterburn Wedge for hv l4ka type passthru cpu p3 ===> common/crtbegin.cc make: *** [/root/afterburner/build/afterburn-wedge-l4ka-passthru-p3/afterburn-wedge] Error 2 and one more, which is the right binary file to be loaded by menu.1st? in /afterburner/build or in /afterburner/boot/ ??? --i use gcc 3.4.6 and on my desktop ================= In file included from /root/afterburner/.//l4ka-resourcemon/common/debug.h:51, from /root/afterburner/.//l4ka-resourcemon/resourcemon/console.cc:33: /root/afterburner/usr/include/l4/tracebuffer.h: In function `void L4_Tbuf_RecordEvent_t0(L4_Word_t, const char*)': /root/afterburner/usr/include/l4/tracebuffer.h:50: error: expected `)' before "__L4_TBUF_RDTSC" /root/afterburner/usr/include/l4/tracebuffer.h:50: warning: unused variable '_dummy' /root/afterburner/usr/include/l4/tracebuffer.h: In function `void L4_Tbuf_RecordEvent_t1(L4_Word_t, const char*, L4_Word_t)': /root/afterburner/usr/include/l4/tracebuffer.h:59: error: expected `)' before "__L4_TBUF_RDTSC" /root/afterburner/usr/include/l4/tracebuffer.h:59: warning: unused variable '_dummy' /root/afterburner/usr/include/l4/tracebuffer.h: In function `void L4_Tbuf_RecordEvent_t2(L4_Word_t, const char*, L4_Word_t, L4_Word_t)': /root/afterburner/usr/include/l4/tracebuffer.h:69: error: expected `)' before "__L4_TBUF_RDTSC" /root/afterburner/usr/include/l4/tracebuffer.h:69: warning: unused variable '_dummy' /root/afterburner/usr/include/l4/tracebuffer.h: In function `void L4_Tbuf_RecordEvent_t3(L4_Word_t, const char*, L4_Word_t, L4_Word_t, L4_Word_t)': /root/afterburner/usr/include/l4/tracebuffer.h:81: error: expected `)' before "__L4_TBUF_RDTSC" /root/afterburner/usr/include/l4/tracebuffer.h:81: warning: unused variable '_dummy' /root/afterburner/usr/include/l4/tracebuffer.h: In function `void L4_Tbuf_RecordEvent_t4(L4_Word_t, const char*, L4_Word_t, L4_Word_t, L4_Word_t, L4_Word_t)': /root/afterburner/usr/include/l4/tracebuffer.h:94: error: expected `)' before "__L4_TBUF_RDTSC" /root/afterburner/usr/include/l4/tracebuffer.h:94: warning: unused variable '_dummy' make[1]: *** [resourcemon/console.o] Error 1 In file included from /root/afterburner/.//l4ka-resourcemon/common/debug.h:51, from /root/afterburner/.//l4ka-resourcemon/resourcemon/locator.cc:34: /root/afterburner/usr/include/l4/tracebuffer.h: In function `void L4_Tbuf_RecordEvent_t0(L4_Word_t, const char*)': /root/afterburner/usr/include/l4/tracebuffer.h:50: error: expected `)' before "__L4_TBUF_RDTSC" /root/afterburner/usr/include/l4/tracebuffer.h:50: warning: unused variable '_dummy' /root/afterburner/usr/include/l4/tracebuffer.h: In function `void L4_Tbuf_RecordEvent_t1(L4_Word_t, const char*, L4_Word_t)': /root/afterburner/usr/include/l4/tracebuffer.h:59: error: expected `)' before "__L4_TBUF_RDTSC" /root/afterburner/usr/include/l4/tracebuffer.h:59: warning: unused variable '_dummy' /root/afterburner/usr/include/l4/tracebuffer.h: In function `void L4_Tbuf_RecordEvent_t2(L4_Word_t, const char*, L4_Word_t, L4_Word_t)': /root/afterburner/usr/include/l4/tracebuffer.h:69: error: expected `)' before "__L4_TBUF_RDTSC" /root/afterburner/usr/include/l4/tracebuffer.h:69: warning: unused variable '_dummy' /root/afterburner/usr/include/l4/tracebuffer.h: In function `void L4_Tbuf_RecordEvent_t3(L4_Word_t, const char*, L4_Word_t, L4_Word_t, L4_Word_t)': /root/afterburner/usr/include/l4/tracebuffer.h:81: error: expected `)' before "__L4_TBUF_RDTSC" /root/afterburner/usr/include/l4/tracebuffer.h:81: warning: unused variable '_dummy' /root/afterburner/usr/include/l4/tracebuffer.h: In function `void L4_Tbuf_RecordEvent_t4(L4_Word_t, const char*, L4_Word_t, L4_Word_t, L4_Word_t, L4_Word_t)': /root/afterburner/usr/include/l4/tracebuffer.h:94: error: expected `)' before "__L4_TBUF_RDTSC" /root/afterburner/usr/include/l4/tracebuffer.h:94: warning: unused variable '_dummy' make[1]: *** [resourcemon/locator.o] Error 1 make[1]: *** wait: No child processes. Stop. make: *** [/root/afterburner/build/l4ka-resourcemon-p4/l4ka-resourcemon] Error 2 root@hasanahcode:~/afterburner# but the mysteerius issue is when i look in to the code,there are no __L4_TBUF_RDTSC !! helps! hope can help me. -saufy ___________________________________________________________ Yahoo! For Good helps you make a difference http://uk.promotions.yahoo.com/forgood/ |
|
|
Re: Fpage mapping in L4 Pistachio[Katsumi Maruyama]
> $B#D#e#a#r!!#s#i#r!'(B > For inter-process data copying, > I am using Flex page mapping conveniently. > However, I noticed copy failure when the Fpage is large. > My program outline is as follows: > (Code is only explanatory, not real one) > Let me call the mapping side process as Mapper, > and mapped side process as Mappee. > ==== (1) Mappee ================== > (1-1) Receive window > Fpage: > mappeefpage: L4_Fpage(0x40000000, 0x100000) > i.e. 1 mega bytes recv window from 1 Giga > ==== (2) Mapper =================== > (2-1) Buffer to send/receive data > char xbuf[XSIZE]; > // This buffer happened being allocated at 0xA26820. > The Flex page which cover this buffer is used for mapping. > strncpy() is used for string copying. > ====== (3) Situation ======== > (3-1) WHEN XSIZE <= 6112: No problem > Fpage of Mapper: > mapperfpage: L4_Fpage(0xA26000, 0x2000) with R/W permissions > MapItem: > mapitem: L4_MapItem(mapperfpage, 0) > i.e. send-base is 0. > Fpage is mapped, and data is rightly copyed from Mappee to Mapper. >From mapper to mappee you mean, right? And the xbuf[] array is accessible at address 0x40000820 of mappee. BTW, saying "copied" here can be confusing. Copying and mapping are not the same thing. > (3-2) WHEN XSIZE > 6112: COPY FAILED > Fpage of Mapper: > mapperfpage: L4_Fpage(0xA20000, 0x10000) with R/W permissions > // To cover the buffer, Fpage becomes large ! > // as the buffer happened to be at 0xA26820 ! > MapItem: > mapitem: L4_MapItem(mapperfpage, 0) > i.e. send-base is 0. And the xbuf[] array should now be accessible at address 0x40006820 of mappee. Is this not happening? > ==> NO DATA COPIED. > ( Cf. 0xA26820 + 6112 == 0xA28000. > &xbuf[6112] is 0xA28000) > ===== (4) Question ====== > Am I misunderstanding the fpage mapping usage, or > are there some restriction or limitation in L4 flex page mapping ? I don't know if you misunderstood it because I don't know what you expect to happen. The limitation of mapping is that pages not present in the mapper will (obviously) not be mapped to the mappee. Also, mapper can not map its own KIP or UTCB memory, and mappee can not receive mappings in its own KIP and UTCB memory. eSk |
|
|
Re: Fpage mapping in L4 PistachioDear Espen Skoglund,:
Thank you for your help. I added some KDB result. >>Let me call the mapping side process as Mapper, >>and mapped side process as Mappee. >> >> >>==== (1) Mappee ================== >> >> >>(1-1) Receive window >>Fpage: >>mappeefpage: L4_Fpage(0x40000000, 0x100000) >>i.e. 1 mega bytes recv window from 1 Giga >> >> >>==== (2) Mapper =================== >> >> >>(2-1) Buffer to send/receive data >>char xbuf[XSIZE]; >>// This buffer happened being allocated (unfortunately !) at 0xA26820. >> >> >>====== (3) Situation ======== >> >> >>(3-1) WHEN XSIZE <= 6112: No problem >> >> >>Fpage of Mapper: >>mapperfpage: L4_Fpage(0xA26000, 0x2000) with R/W permissions >> >> >>MapItem: >>mapitem: L4_MapItem(mapperfpage, 0) >>i.e. send-base is 0. >> >> >>Fpage is mapped, and data is rightly copyed from Mappee to Mapper. >> >> > >>From mapper to mappee you mean, right? > >And the xbuf[] array is accessible at address 0x40000820 of mappee. > > >BTW, saying "copied" here can be confusing. Copying and mapping are >not the same thing. > > I meant: strncpy(0x40000820, mappeeOwnBuffer, SIZE); i.e. mappee --> mapper Right after receiving the mapping-IPC, I confirmed the mappint using KDB d command. d 40000820 >memdump Dump address [0x0]: 0x40000820 40000820 00000000 00000000 00000000 00000000 ....... .... (3-2) WHEN XSIZE > 6112: COPY FAILED >>Fpage of Mapper: >>mapperfpage: L4_Fpage(0xA20000, 0x10000) with R/W permissions >>// To cover the buffer, Fpage becomes large ! >>// as the buffer happened to be at 0xA26820 ! >>MapItem: >>mapitem: L4_MapItem(mapperfpage, 0) >>i.e. send-base is 0. >> >> > >And the xbuf[] array should now be accessible at address 0x40006820 of >mappee. Is this not happening? > > KDB d command answered: d 0x40006820 >memdump Dump address [0x0]: 0x40006820 0x40006820 ######## ######## ######## ######## ..... >>( Cf. 0xA26820 + 6112 == 0xA28000. >>&xbuf[6112] is 0xA28000) >> >> >>===== (4) Question ====== >> >> >>Am I misunderstanding the fpage mapping usage, or >>are there some restriction or limitation in L4 flex page mapping ? >> >> > >I don't know if you misunderstood it because I don't know what you >expect to happen. The limitation of mapping is that pages not present >in the mapper will (obviously) not be mapped to the mappee. Also, >mapper can not map its own KIP or UTCB memory, and mappee can not >receive mappings in its own KIP and UTCB memory. > > pages are present. Umm. my test code seems not conflicting with the limitation. --- K. Maruyama, L4-devotee NII, Japan |
|
|
Re: Fpage mapping in L4 Pistachio[Katsumi Maruyama]
>> And the xbuf[] array should now be accessible at address 0x40006820 of >> mappee. Is this not happening? >> >> > I expected the mapping at 0x40006820, but it seemed not-mapped. > KDB d command answered: > d 0x40006820 >> memdump > Dump address [0x0]: 0x40006820 > 0x40006820 ######## ######## ######## ######## > ..... Try dumping the page table of the mapper ('p' in kdb). Also, try dumping the mapping database for the page frame in question ('m' in kdb I think, and provide the physical address of the page). eSk |
|
|
Re: Fpage mapping in L4 PistachioDear Espen Skoglund:
Than you for your help. I tried some KDB commands. (I am not familiar wth the KDB. A KDB manual is wanted.) ------ Test condition ---- The test condition is as follows: [1] Mapper mapper<a26820-a28000, a28000, 10000> This means: Buffer ia located at [a26820-a28000]. (size is 6113) Mapper Flexpage : <a28000, 10000> (a26820 is very delicated address !?) [2] Mappee (My mappee assigns the idle mappee fpage at 1G + 1M*n of 1M window size ) mappee<40606820-40608000, 40600000, 1000000> Buffer is to be accessible at: [40606820-40608000] (6113 bytes) Mappee flex page: <40600000, 1000000> ========== KDB results ============= Followings are KDB results, just after receiveing mapping IPC in mappee. ------- d command -------- d >memdump 40606820 ######## ######## ######## ######## ..... ===> Expecting pages seem not mapped. ---- p command ------------ > ptab ....... 40400000 [0b44a027]: tree=fb44a000 40500000 ............. 40501000 ............ 40600000 [0117a007]: phys=0117a000 map=fb440568 4KB rw~ (~~~) user WB 40601000 [0117b007]: phys=0117b000 map=fb440eec 4KB rw~ (~~~) user WB ........... 40604000 [0117e007]: phys=0117e000 map=fb440f10 4KB rw~ (~~~) user WB /***** Entries 40605000-406ff000 do not apper; ********/ 40700000 [011bd005]: phys=011bd000 map=fb440544 4KB rw~ (~~~) user WB 40701000 .................... 40702000 .................... ===> Expected pages 40605000-406ff000 seem not apper. --- m command -------------- > mdb Address [0x0] 0117e000 01000000: 4MB [root] (f012c010) 0117e000: 4KB [map] (fb41d5f8) [1] space=f0138000 ... [2] space=fb426000 .... [3] space=f4b18000 vaddr=40604000 pgent=fb44a818 (fb440f10) >[Katsumi Maruyama] > > >>>And the xbuf[] array should now be accessible at address 0x40006820 of >>>mappee. Is this not happening? >>> >>> >>> >>> >>I expected the mapping at 0x40006820, but it seemed not-mapped. >>KDB d command answered: >>d 0x40006820 >> >> >>>memdump >>> >>> >>Dump address [0x0]: 0x40006820 >>0x40006820 ######## ######## ######## ######## >>..... >> >> > >Try dumping the page table of the mapper ('p' in kdb). Also, try >dumping the mapping database for the page frame in question ('m' in >kdb I think, and provide the physical address of the page). > > eSk > > K. Maruyama |
|
|
RE: Afterburner-Wedge Compile Error - Need Help!> -----Original Message-----
It seems that you're using an older version of afterburner (newer ones have
> From: l4ka-bounces@... [mailto:l4ka-bounces@...- > karlsruhe.de] On Behalf Of muhammad saufy > Sent: Thursday, April 10, 2008 10:19 AM > To: Katsumi Maruyama; l4ka@... > Subject: Afterburner-Wedge Compile Error - Need Help! > > > ===> common/crtend.cc > ===> l4ka-resourcemon > Configuring the Afterburn wedge-l4ka-passthru-p3 > #@echo "Options WEDGE_L4KA DEVICE_PASSTHRU > DEVICE_APIC=n ARCH_IA32=y L4KA_VT=y L4KA_VT renamed to L4KA_HVM). Please update your revision accordingly. Keep in mind that L4/HVM and afterburner/HVM are *development* branches, so don't expect anything to compile smoothly out of the box. Also check the branches for changes regularly (http://hg.l4ka.org/exp/ provides RSS feeds to do conveniently do that) > and one more, which is the right binary file to be > loaded by menu.1st? Build contains build files, boot contains the files to be booted from grub. > in /afterburner/build or in /afterburner/boot/ ??? > > --i use gcc 3.4.6 > > and on my desktop > ================= It's impossible to guess what could have gone wrong without knowing your configuration. Can you post the top level config.out? -Jan -- Jan Stoess System Architecture Group University of Karlsruhe Phone: +49 (721) 608-4056 Fax: +49 (721) 608-7664 eMail: stoess@... |
| Free embeddable forum powered by Nabble | Forum Help |