jiffies到底是多长时间?(总分值120分!!!)
网桥那段有一个创建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
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
作者: jiahehao 发布时间: 2011-05-05
jiffies只是一个时间戳值。
更多时间是用其它来作定时使用。
例:
unsigned long j = jiffies
unsigned long stamp = j + HZ
更多时间是用其它来作定时使用。
例:
unsigned long j = jiffies
unsigned long stamp = j + HZ
作者: voice_shen 发布时间: 2011-05-05
引用 1 楼 voice_shen 的回复:
jiffies只是一个时间戳值。
更多时间是用其它来作定时使用。
例:
unsigned long j = jiffies
unsigned long stamp = j + HZ
jiffies只是一个时间戳值。
更多时间是用其它来作定时使用。
例:
unsigned long j = jiffies
unsigned long stamp = j + HZ
再分析
jiffies的计数增加,是根据HZ的值面而变化的。
如果 HZ=100, 1个jiffies = 10 ms
如果 HZ=1000, 1个jiffies = 1 ms
作者: voice_shen 发布时间: 2011-05-05
引用 2 楼 voice_shen 的回复:
引用 1 楼 voice_shen 的回复:
jiffies只是一个时间戳值。
更多时间是用其它来作定时使用。
例:
unsigned long j = jiffies
unsigned long stamp = j + HZ
再分析
jiffies的计数增加,是根据HZ的值面而变化的。
如果 HZ=100, 1个jiffies = 10 ms
如果 HZ=1000, 1……
引用 1 楼 voice_shen 的回复:
jiffies只是一个时间戳值。
更多时间是用其它来作定时使用。
例:
unsigned long j = jiffies
unsigned long stamp = j + HZ
再分析
jiffies的计数增加,是根据HZ的值面而变化的。
如果 HZ=100, 1个jiffies = 10 ms
如果 HZ=1000, 1……
顶一个
作者: yong_f 发布时间: 2011-05-05