当前位置:  技术问答>linux和unix

jiffies到底是多长时间?(总分值120分!!!)

    来源: 互联网  发布时间:2016-11-27

    本文导语:  网桥那段有一个创建fdb-entry的代码,jiffies是定时器时间。 static struct net_bridge_fdb_entry *fdb_create(struct hlist_head *head,        struct net_bridge_port *source,        const unsigned char *addr,        int is_local) { struct...

网桥那段有一个创建fdb-entry的代码,jiffies是定时器时间。

static struct net_bridge_fdb_entry *fdb_create(struct hlist_head *head,
       struct net_bridge_port *source,
       const unsigned char *addr,
       int is_local)
{
struct net_bridge_fdb_entry *fdb;
fdb = kmem_cache_alloc(br_fdb_cache, GFP_ATOMIC);
if (fdb) {
memcpy(fdb->addr.addr, addr, ETH_ALEN);
atomic_set(&fdb->use_count, 1);
hlist_add_head_rcu(&fdb->hlist, head);
fdb->dst = source;
fdb->is_local = is_local;
fdb->is_static = is_local;
fdb->ageing_timer = jiffies;

而jiffies的定义如下:
# define jiffies raid6_jiffies()

static inline uint32_t raid6_jiffies(void)
{
   struct timeval tv;
   gettimeofday(&tv, NULL);
   return tv.tv_sec*1000 + tv.tv_usec/1000;
}

我查了下gettimeofday 和 struct timeval tv 的结构,惊讶的发现定了一个超长的时间。

我理解,tv.tv_sec(秒数) * 1000 + 微秒/1000 应该是大于 三小时的一个数吧?

当前秒数如果是1,那么也是16分钟啊。。。。。。。取均值30,则是8小时。。。。

这个判断正确否?无论如何,我觉得fdb默认的定时器时间超过三小时,都是非常让人不理解的一件事。

所以我觉得我上面的逻辑可能哪里有问题。极可能定时的时间是一个分钟级的数字。

烦请大伙赐教!!

可怜的楼主以前发过一个100分的帖子,一个回复都没有,楼主滴分都给不出去,一起在本贴给了吧。

高手们解答了本贴,也烦请移步去这个帖子留个名,楼主会参照本贴的回复含金量,大把给分~~~~

http://topic.csdn.net/u/20110418/20/048ae2ed-17ba-4fad-b1a1-6b960711ad24.html

|


再分析
jiffies的计数增加,是根据HZ的值面而变化的。
如果 HZ=100, 1个jiffies = 10 ms
如果 HZ=1000, 1个jiffies = 1 ms

|
static inline uint32_t raid6_jiffies(void)
{
  struct timeval tv;
  gettimeofday(&tv, NULL);
  return tv.tv_sec*1000 + tv.tv_usec/1000;
}
此函数返回的是当前的jiffies数,显然是以ms为单位的。
当用jiffies定时时,通常是jiffies+你需要定时的时间,因为jiffies自动计数,所以会在到达你所预订的时间时满足条件。

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • vmlinux.lds.S中的jiffies = jiffies_64问题
  • larm 时间已经过期(alarm<jiffies)是什么意思?
  • jiffies的含义
  • 如何调用clock_t_to_jiffies函数
  • 怎样编程实现打印出jiffies的值
  • 关于jiffies_64的问题
  • 内核里如何得到tick,用哪个函数,不是jiffies,要tick
  • 为什么jiffies在系统重启后为赋值?求高手解答
  • 关于 jiffies 的回绕 ,时钟 - 回绕 - 安全 ,timer - wraparound - safe


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3