Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Mailing Lists -> Oracle-L -> Async I/O question

Async I/O question

From: Diego Cutrone <dcutrone_at_afip.gov.ar>
Date: Wed, 08 May 2002 10:28:34 -0800
Message-ID: <F001.0045BD34.20020508102834@fatcity.com>


Hi list.

Oracle 7.3.4.5
IBM 4.3.3
Raw devices based datafiles
use_async_io=TRUE

While the database was processing some long update, I traced the LGWR proccess with SCTRACE utility (like truss in solaris or HP) and I got the following dump:

LGWR proccess

unknown297(0x1, 0x2ff0cfa8, 0x30, 0x2ff0cfa0, 0x2ff0ed00) -> 0 times(0x2ff20fd8) -> 77507556 (0x49eabe4)   0x2ff20fd8:

    0000: 00000015 000001e1 00000000 00000000 |................|
times(0x2ff21068) -> 77507556 (0x49eabe4)   0x2ff21068:
    0000: 00000015 000001e1 00000000 00000000 |................|
times(0x2ff212c8) -> 77507556 (0x49eabe4)   0x2ff212c8:
    0000: 00000015 000001e1 00000000 00000000 |................|
times(0x2ff212c8) -> 77507556 (0x49eabe4)   0x2ff212c8:
    0000: 00000015 000001e1 00000000 00000000 |................|
times(0x2ff21018) -> 77507556 (0x49eabe4)   0x2ff21018:
    0000: 00000015 000001e1 00000000 00000000 |................|
times(0x2ff21068) -> 77507556 (0x49eabe4)   0x2ff21068:
    0000: 00000015 000001e1 00000000 00000000 |................|
unknown297(0x1, 0x2ff0cfa8, 0x3, 0x2ff0cfa0, 0x2ff0e058) -> 0 times(0x2ff20fd8) -> 77507557 (0x49eabe5)   0x2ff20fd8:
    0000: 00000015 000001e1 00000000 00000000 |................|
times(0x2ff21068) -> 77507557 (0x49eabe5)   0x2ff21068:
    0000: 00000015 000001e1 00000000 00000000 |................|

and it keeps going.....

I asume that unknown297() system call is the writting call here, as times() unknown297() and are the only calls that appear in the trace.

After this testing I did the same trace in an Oracle database 7.3.4.5
File system based datafiles
AIX 4.3.3 (same box)
use_async_io = TRUE

And I got the following output:

LGWR proccess

unknown297(0xa, 0, 0x4000982c, 0x1, 0x20034c78) -> -1 EINTR(4) (Interrupted system call) times(0x2ff21438) -> 45035290 (0x2af2f1a)   0x2ff21438:
    0000: 0000002d 00000175 00000000 00000000 |...-...u........| times(0x2ff215c8) -> 45035290 (0x2af2f1a)   0x2ff215c8:
    0000: 0000002d 00000175 00000000 00000000 |...-...u........| kwaitpid(0x2ff21520, -1, 0x5, 0x00000000) -> -1 ECHILD(10) (No child processes) kill(27736, SIG 0(0)) -> 0
times(0x2ff215c8) -> 45035290 (0x2af2f1a)   0x2ff215c8:
    0000: 0000002d 00000175 00000000 00000000 |...-...u........| times(0x2ff21478) -> 45035290 (0x2af2f1a)   0x2ff21478:
    0000: 0000002d 00000175 00000000 00000000 |...-...u........| unknown297(0x12c, 0, 0x4000982c, 0x1, 0x20034c78) [unknown297] -> 0
times(0x2ff21438) -> 45035477 (0x2af2fd5)   0x2ff21438:
    0000: 0000002d 00000175 00000000 00000000 |...-...u........| times(0x2ff21398) -> 45035477 (0x2af2fd5)   0x2ff21398:
    0000: 0000002d 00000175 00000000 00000000 |...-...u........| times(0x2ff21398) -> 45035477 (0x2af2fd5)   0x2ff21398:
    0000: 0000002d 00000175 00000000 00000000 |...-...u........| times(0x2ff210e8) -> 45035477 (0x2af2fd5)   0x2ff210e8:
    0000: 0000002d 00000175 00000000 00000000 |...-...u........| times(0x2ff21138) -> 45035477 (0x2af2fd5)   0x2ff21138:
    0000: 0000002d 00000175 00000000 00000000 |...-...u........| kwrite(15, 0x4213be00, 55296) -> 55296 (0xd800) times(0x2ff210a8) -> 45035479 (0x2af2fd7)   0x2ff210a8:
    0000: 0000002d 00000175 00000000 00000000 |...-...u........| times(0x2ff21138) -> 45035479 (0x2af2fd7)   0x2ff21138:
    0000: 0000002d 00000175 00000000 00000000 |...-...u........| unknown297(0xa650, 0xc08, 0, 0x5, 0x420315b4) -> 0 times(0x2ff21398) -> 45035479 (0x2af2fd7)   0x2ff21398:
    0000: 0000002d 00000175 00000000 00000000 |...-...u........| times(0x2ff21398) -> 45035479 (0x2af2fd7)   0x2ff21398:
    0000: 0000002d 00000175 00000000 00000000 |...-...u........| times(0x2ff210e8) -> 45035479 (0x2af2fd7)   0x2ff210e8:
    0000: 0000002d 00000175 00000000 00000000 |...-...u........| times(0x2ff21138) -> 45035479 (0x2af2fd7)   0x2ff21138:
    0000: 0000002d 00000175 00000000 00000000 |...-...u........| kwrite(15, 0x42149600, 59904) -> 59904 (0xea00) kwrite(15, 0x42130000, 48128) -> 48128 (0xbc00)

As you can see kwrite, klseek, etc are used here. My questions are:

Is unknown297 system call related to KAIO system calls?

Is kwrite related to Threaded Async I/O (the ones that uses the AIO servers) ?

If I'm correct about what I've said before, I must assume that the unknown297 system calls that I see in the second trace (FS based datafiles) are Oracle attemps to use KAIO (may be because use_async_io is set to TRUE), and after these attemps have failed, Oracle uses kwrite system call instead(Threaded Async I/O) Is this correct?

If anyone can help, I'd greatly appreciate it.

thanks in advance
Greetings
DC

--

Please see the official ORACLE-L FAQ: http://www.orafaq.com
--

Author: Diego Cutrone
  INET: dcutrone_at_afip.gov.ar

Fat City Network Services    -- (858) 538-5051  FAX: (858) 538-5051
San Diego, California        -- Public Internet access / Mailing Lists
--------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message to: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing). Received on Wed May 08 2002 - 13:28:34 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US