亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 3458 | 回復(fù): 10
打印 上一主題 下一主題

請教vfree出錯(cuò)的原因 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2011-06-13 14:47 |只看該作者 |倒序?yàn)g覽
本帖最后由 fly6 于 2011-06-13 15:10 編輯

我改寫了流控的sch_tbf.c模塊,以支持每IP限速,為了記錄下每個(gè)IP的令牌使用情況,需要一個(gè)數(shù)組(>128K),數(shù)據(jù)結(jié)構(gòu)如下:
struct tbf_node_data
{
        struct sk_buff_head skqueue;

        unsigned long last_time;

        long tokens;
        long up_tokens;

        psched_time_t t_c;
        psched_time_t up_t_c;
};
#define TBF_IP_POOL_SIZE 4096

在tbf_change中,q->varray= vmalloc(sizeof(struct tbf_node_data)*TBF_IP_POOL_SIZE);
在tbf_destroy中,使用vfree(q->varray),此時(shí)出錯(cuò),雖然tbf的主要代碼運(yùn)行在bottom half下,但我用TC刪除規(guī)則時(shí)應(yīng)該不會在bottom half空間,
請教高手為何會出錯(cuò)

論壇徽章:
36
IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-10 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-16 06:20:0015-16賽季CBA聯(lián)賽之廣東
日期:2016-04-16 19:59:32IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-18 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-19 06:20:00每日論壇發(fā)貼之星
日期:2016-04-19 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-25 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-06 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-08 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-13 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-28 06:20:00每日論壇發(fā)貼之星
日期:2016-05-28 06:20:00
2 [報(bào)告]
發(fā)表于 2011-06-13 14:57 |只看該作者
出錯(cuò)的信息是什么?

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2011-06-13 15:11 |只看該作者
==我打個(gè)包

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2011-06-13 15:12 |只看該作者
本帖最后由 fly6 于 2011-06-13 15:18 編輯

==我打個(gè)包 tbf.tar.gz (4.67 KB, 下載次數(shù): 39)

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2011-06-13 15:32 |只看該作者
是不是因?yàn)樵谥袛嗟脑蚰?/td>

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2011-06-13 16:03 |只看該作者
沒研究過 tc 和通過何種方法與 kernel 通信的,是 netlink 嗎?
如果是,共享區(qū)域應(yīng)該用 _bh 鎖

因?yàn)?panic 信息不全,所以不是很清楚最后的函數(shù)調(diào)用棧是怎樣的
從感覺上判斷,還是鎖的問題

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2011-06-13 16:07 |只看該作者
/* Under dev->queue_lock and BH! */
void qdisc_destroy(struct Qdisc *qdisc)
------------------------------------------------------
這個(gè)函數(shù)運(yùn)行在軟件中斷下,所以vfree會出錯(cuò),但沒弄明白為什么這個(gè)函數(shù)為什么一定要運(yùn)行在軟中斷下

論壇徽章:
36
IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-10 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-16 06:20:0015-16賽季CBA聯(lián)賽之廣東
日期:2016-04-16 19:59:32IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-18 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-19 06:20:00每日論壇發(fā)貼之星
日期:2016-04-19 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-25 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-06 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-08 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-13 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-28 06:20:00每日論壇發(fā)貼之星
日期:2016-05-28 06:20:00
8 [報(bào)告]
發(fā)表于 2011-06-13 18:06 |只看該作者
tc 好像用的是 netlink。
我也覺得 LZ 的 vfree 信息不全,會不會你free 的時(shí)候,那個(gè)指針已經(jīng)指向別的位置了

論壇徽章:
0
9 [報(bào)告]
發(fā)表于 2011-06-14 08:34 |只看該作者
我這里有個(gè)測試包,只在initialize中分配,在destroy中釋放,就會出錯(cuò).
原因可能如白金所說TC用的是netlink,接收包時(shí)在bh中執(zhí)行(也就是軟中斷),所以vfree報(bào)錯(cuò)

論壇徽章:
0
10 [報(bào)告]
發(fā)表于 2011-06-14 08:52 |只看該作者
我這里有個(gè)測試包,只在initialize中分配,在destroy中釋放,就會出錯(cuò).
原因可能如白金所說TC用的是netlin ...
fly6 發(fā)表于 2011-06-14 08:34


恩,因?yàn)槲抑暗囊粋(gè)項(xiàng)目里,動態(tài)進(jìn)行 vmalloc 和 vfree 時(shí)就會出現(xiàn)問題(bh 環(huán)境)
但因?yàn)槭莻(gè)全局大 hash,我在整個(gè)模塊 init 和 destroy 的位置使用就沒有問題了

如果可能的話,不妨這樣
1、在非 bh 位置嘗試使用 v 系列函數(shù)
2、在 bh 位置嘗試使用 k 系列函數(shù)

我對內(nèi)存管理部分不熟悉,至于 v 系列函數(shù)是否真的不能用于 bh 環(huán)境,還有待驗(yàn)證

評分

參與人數(shù) 1可用積分 +6 收起 理由
Godbach + 6 感謝分享

查看全部評分

您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP