Dear all: If I search the right place in mip kernel, I find the kernel implement udelay by multu and bnez looping, in 32-bits mode. if (sizeof(long) == 4) __asm__("multu\t%2, %3" : "=h" (usecs), "=l" (lo) : "r" (usecs), "r" (lpj) : GCC_REG_ACCUM); else if (sizeof(long) == 8) __asm__("dmultu\t%2, %3" : "=h" (usecs), "=l" (lo) : "r" (usecs), "r" (lpj) : GCC_REG_ACCUM); __delay(usecs); why we doing so instead of using kernel timer function and the precision will be incorrect if the cpu runs faster or slower, right? appreciate your help, miloody