lkml.org 
[lkml]   [2003]   [Apr]   [30]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
From"Bobby Singh" <>
SubjectRe: Having problem with io_getevents with o_direct flag
DateWed, 30 Apr 2003 01:13:05 -0700
Steve .. The problem was requesting min requests as 0. I changed to 1 and 
now its working fine.

Thanks,
Bobby
P.S.: I was passing struct event * , wrote it wrong here while stating the 
problem;-)


>From: Steven Pratt <slpratt@austin.ibm.com>
>To: Bobby Singh <bobbysingh22@hotmail.com>
>CC: linux-kernel@vger.kernel.org, linux-aio@kvack.org
>Subject: Re: Having problem with io_getevents with o_direct flag
>Date: Tue, 29 Apr 2003 08:09:00 -0500
>
>Well a couple of possibilities.  First, are you opening a block device 
>(like /dev/sdb) ?  If you are, this is still broken in 2.5.67. A patch for 
>this has been submitted to the aio list and is also available in the 2.5 
>bugtraker (http://bugme.osdl.org) attached to bug 626.
>
>Also, as far as your code goes, the res from io_get_events only tells you 
>that the io_get_events succeeded.  To see if the IO actually succeeded you 
>always need to check event.res.  Be careful for event.res as there is a bug 
>in libaio where event.res is defined as unsigned but it is really signed 
>(negative=error, positive=bytesread/written).
>
>Also I see that you are setting the minimum number of events requested to 
>0, not sure what this will do.  Might want to set that to 1.
>
>Hmm, also see that you are passing in just a struct event where the API 
>calls for a struct event * (actually an array of event structs).  Not sure 
>why this ever works.
>
>Hope this helps,
>Steve
>
>Bobby Singh wrote:
>
>>Hi,
>>
>>  I am having problems with using io_getevents ? Is the o_direct aio 
>>support stable in 2.5.67? Following is the scenario:
>>
>>Machine: Dell 500SC 1.13Gz
>>Original Kernel : 2.4.18-3 ( redhat 7.3)
>>Downloaded kernel 2.5.67 and compiled it.
>>Installed libaio-0.3.92 aio library.
>>
>>I am writing an io intensive application and want to leverage the o_direct 
>>aio support. I am using in following way (borrowed from testcase in 
>>libaio)
>>
>>struct iocb **pAiocb;
>>struct io_event event;
>>if(io_submit(io_ctx,numAiocb, pAiocb) <0)
>>{
>>    perror("Error in io_submit");
>>    return(-1);
>>}
>>for(i=0;i<numAiocb;i++)
>>{
>>    if((res=io_getevents(io_ctx,0,1,event,NULL)) && (res != 1))
>>    {
>>        perror("Error in getevents");
>>        return(-1);
>>    }
>>    printf("%d\n",event.res);
>>}
>>
>>
>>PROBLEM is : THe code doesn't print an ERROR but in "event.res" the amount 
>>of data  read is not same as requested. Sometimes the return size is ZERO 
>>and event is returned.
>>
>>THE CODE WORKS fine if the file is opened WITHOUT O_DIRECT.
>>
>>Thanks,
>>Bobby
>>
>>_________________________________________________________________
>>Protect your PC - get McAfee.com VirusScan Online  
>>http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid=3963
>>
>>--
>>To unsubscribe, send a message with 'unsubscribe linux-aio' in
>>the body to majordomo@kvack.org.  For more info on Linux AIO,
>>see: http://www.kvack.org/aio/
>>Don't email: <a href=mailto:"aart@kvack.org">aart@kvack.org</a>
>
>
>


_________________________________________________________________
The new MSN 8: smart spam protection and 2 months FREE*  
http://join.msn.com/?page=features/junkmail
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 12:35    [W:4.985 / U:0.050 seconds]
©2003-2008 Jasper Spaans