FID on OST
(LU-1185)
|
|
| Status: | Resolved |
| Project: | Lustre |
| Component/s: | None |
| Affects Version/s: | Lustre 2.4.0 |
| Fix Version/s: | Lustre 2.4.0 |
| Type: | Technical task | Priority: | Blocker |
| Reporter: | Andreas Dilger | Assignee: | Di Wang |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | LB | ||
| Issue Links: |
|
||||||||||||||||||||||||||||
| Rank (Obsolete): | 6271 | ||||||||||||||||||||||||||||
| Description |
|
After This will unify MDT and OST object identification, as well as DLM locking. |
| Comments |
| Comment by Andreas Dilger [ 05/Mar/13 ] |
|
What needs to be done for this change to be included for the 2.4 release? This is the only time we will be able to convert ostid to lu_fid, since we can check for "o_seq != 0" to decide whether it is a FID or an old object/group=0. |
| Comment by Di Wang [ 24/Mar/13 ] |
| Comment by Di Wang [ 24/Mar/13 ] |
|
Andreas: this patch is the just the first try, and it only fix the resid order for data object. I will add more changes later. |
| Comment by Di Wang [ 28/Mar/13 ] |
|
Andreas: ; struct ost_id { struct lu_fid { So when id comes in, we can check whether the object id by this if (fid_seq_is_mdt0(oi->o_seq) || fid_seq_is_echo(oi->o_seq) || fid_seq_is_llog(oi->o_seq)) { } But there are some questions 1. o_seq = 0 will never obsolete in current implementation, because MDT0 will always start using seq 0, instead of normal seq, even for new refresh FS and DNE. So it means such conversion will always exists, with this regard, do you think we still need this unification here? 2. we need take care seq 1 (llog) and seq 2 (echo) as well, it means the first two bits of f_ver will be occupied as well, but in some big endian machine, seq(1,2) might be in the space of f_oid, which we can not tell it is normal FID or llog/echo seq. am I right? Could you please give some suggestion here? |
| Comment by Andreas Dilger [ 02/Apr/13 ] |
|
Di, could you please post the email I sent you to this bug. I don't have access to it right now. |
| Comment by Di Wang [ 02/Apr/13 ] |
|
Here are replies from Andreas question1, o_seq = 0 will never obsolete in current implementation, because MDT0 will always start using seq 0, instead of normal seq, even for new refresh FS and DNE. So it means such conversion will always exists, with this regard, do you think we still need this unification here? Andreas: question2, we need take care seq 1 (llog) and seq 2 (echo) as well, it means the first two bits of f_ver will be occupied as well, but in some big endian machine, seq(1,2) might be in the space of f_oid, which we can not tell it is normal FID or llog/echo seq. am I right? Andreas: |
| Comment by Peter Jones [ 10/Apr/13 ] |
|
Landed for 2.4 |
| Comment by Alex Zhuravlev [ 10/Apr/13 ] |
|
this is what I got with gcc-4.7.2: In file included from /work/lustre/head1/lustre/ofd/ofd_obd.c:45:0: seem to be related ? |
| Comment by Di Wang [ 10/Apr/13 ] |
|
Sigh, I am still using gcc-4.4.6 here. But I post a patch here http://review.whamcloud.com/6016, Could you please check whether this will help? Thanks |
| Comment by Di Wang [ 10/Apr/13 ] |
|
reopen for tracking compiling warning alex mentioned. |
| Comment by Peter Jones [ 12/Apr/13 ] |
|
Closing again - the compiler issue is being handled along with the fix for |