From: Vladislav B. <vs...@vl...> - 2007-06-29 15:49:18
|
You forgot patches Alessandro Premoli wrote: > Vladislav Bolkhovitin ha scritto: > >>Great! > > > First, the problem: you cannot calculate sgv_max_local_order and > sgv_max_trans_order by excess and then compare them with > get_order(size). The maximum number of local (SG + trans) entries may be > 112 (like in amd64 case) and you bzero 128 sg_entries for every > allocation request between 65 and 128 pages because the order is the > same. This is the reason why single transfers of (70 * PAGE_SIZE) = > ~285k or more fail on amd64. On i386 the limit is higher, since you can > shrink more records in one page, and so it's very difficult to reach. > > Now, the solutions: I created two different patches, with two different > approaches. The first is the safest, surely correct, but perhaps not > highly optimized, and consists in decreasing sgv_max_local_order and > sgv_max_trans_order by 1. The other consists in comparing the number of > pages instead of the orders, so that we can use all the entries fitting > in one page, but I'm not sure I catched all the corner cases and if it's > the correct way to go. > > -- > Alessandro > > ------------------------------------------------------------------------- > This SF.net email is sponsored by DB2 Express > Download DB2 Express C - the FREE version of DB2 express and take > control of your XML. No limits. Just data. Click to get it now. > http://sourceforge.net/powerbar/db2/ > _______________________________________________ > Scst-devel mailing list > Scs...@li... > https://lists.sourceforge.net/lists/listinfo/scst-devel > |