プロフィール

kosaki

Author:kosaki
連絡先はコチラ

ブログ検索
最近の記事
最近のコメント
最近のトラックバック
リンク
カテゴリー
月別アーカイブ
RSSフィード
FC2ブログランキング

どうでもいいが このエントリーをはてなブックマークに追加

ブログのネタ度をあげるか、下げるか、その岐路に来ている気がする

関連記事
雑談 | 【2008-06-30(Mon) 21:13:03】 | Trackback:(0) | Comments:(5)

kernel watch 6月号 このエントリーをはてなブックマークに追加

なんか公開されたらしい。
謎のメモ書きの羅列だった初稿をここまで日本語に直した編集者には敬意を表したい。

http://www.atmarkit.co.jp/flinux/rensai/watch2008/watch06a.html




関連記事
linux | 【2008-06-30(Mon) 20:41:23】 | Trackback:(0) | Comments:(0)

Alan Coxのシグネチャ このエントリーをはてなブックマークに追加

意味深だなー

--
"Alan, I'm getting a bit worried about you."
-- Linus Torvalds


関連記事
linux | 【2008-06-30(Mon) 14:14:11】 | Trackback:(0) | Comments:(0)

memcgのLRUリストはPageLRUがOFFのときもリストにつながってる このエントリーをはてなブックマークに追加

ほほー

ま、今追っているバグとは全然リンクしないんだが。


unsigned long mem_cgroup_isolate_pages(unsigned long nr_to_scan,
struct list_head *dst,
unsigned long *scanned, int order,
int mode, struct zone *z,
struct mem_cgroup *mem_cont,
int active, int file)
{
unsigned long nr_taken = 0;
struct page *page;
unsigned long scan;
LIST_HEAD(pc_list);
struct list_head *src;
struct page_cgroup *pc, *tmp;
int nid = z->zone_pgdat->node_id;
int zid = zone_idx(z);
struct mem_cgroup_per_zone *mz;
int lru = LRU_FILE * !!file + !!active;

BUG_ON(!mem_cont);
mz = mem_cgroup_zoneinfo(mem_cont, nid, zid);
src = &mz->lists[lru];
spin_lock(&mz->lru_lock);
scan = 0;
list_for_each_entry_safe_reverse(pc, tmp, src, lru) {
if (scan >= nr_to_scan)
break;
page = pc->page;

// ★ PageLRUがOFFの時は別の人にisolateされているので抜ける
if (unlikely(!PageLRU(page)))
continue;

/*
* TODO: play better with lumpy reclaim, grabbing anything.
*/
if (PageUnevictable(page) ||
(PageActive(page) && !active) ||
(!PageActive(page) && active)) {
__mem_cgroup_move_lists(pc, page_lru(page));
continue;
}

scan++;
list_move(&pc->lru, &pc_list);

if (__isolate_lru_page(page, mode, file) == 0) {
list_move(&page->lru, dst);
nr_taken++;
}
}

list_splice(&pc_list, src); //★isolateしたかどうかに関わらずリストに戻す
spin_unlock(&mz->lru_lock);

*scanned = scan;
return nr_taken;
}



関連記事
linux | 【2008-06-29(Sun) 18:47:22】 | Trackback:(0) | Comments:(2)

貴様の問題などどうでもいい このエントリーをはてなブックマークに追加

Matz を説得する方法のスライドがすばらしい件

http://d.hatena.ne.jp/tokuhirom/20080629/1214717545


からリンクされている、akrさんの資料がすばらしい。
なんで直接リンクせずにこっちに貼るかというと、文中の

「貴様の問題などどうでもいい」


がいい味だしてるから


関連記事
プログラミング | 【2008-06-29(Sun) 18:13:24】 | Trackback:(0) | Comments:(0)

バグがとれねー このエントリーをはてなブックマークに追加

ここ1週間ぐらいずっと悩んでいる気がする。

わかっていること
・Activeなリストにつながっているのに、!PageActive() なことがある
・LRUにつながってるのに、!PageLRU() なことがある
・putback_lru_page() rework をはずすとおきない
・putback_lru_page() rework に後から入れた追加修正をはずしても起きる。
よって、根本的になにか見落としてる可能性が高い
・memcgのreclaimは無罪(CONFIG=Nでも再現するから)

関連記事
linux | 【2008-06-29(Sun) 18:04:22】 | Trackback:(0) | Comments:(0)

がくがく このエントリーをはてなブックマークに追加

Hugh Dickins 大先生のパッチに初めていちゃもんをつける。
ああ、ものすごく緊張する


関連記事
linux | 【2008-06-29(Sun) 17:28:48】 | Trackback:(0) | Comments:(0)

オワタ\(^o^)/ このエントリーをはてなブックマークに追加

http://www.linuxsymposium.org/2008/

なんか、来月にオタワに行くらしいです。どうでもいい。
あ、でも、日本人で行く人がいれば教えてください。海外とか一人で行動するのめどい


あと、オタワとオワタ\(^o^)/が似すぎていて困る。IME的な意味で

関連記事
雑談 | 【2008-06-28(Sat) 17:33:34】 | Trackback:(0) | Comments:(0)

校正中 このエントリーをはてなブックマークに追加

プロの編集者ってホンマえらいわー

関連記事
雑談 | 【2008-06-27(Fri) 20:42:47】 | Trackback:(0) | Comments:(0)

今日のmatzにっき このエントリーをはてなブックマークに追加

http://www.rubyist.net/~matz/20080620.html


なぜか名言まみれ。

更新します。更新するまでがRubyKaigiです



といいつつ

RubyKaigi'08は(自分の中で)永遠に不滅です



とか。
「これはすごい」x10ぐらいタグをつけたい。

こう、まるでプログラミングしていて、人の作ったルーチンがものすごく汎用的に使えることに
気づいてしまった時のよろこびというか。



関連記事
雑談 | 【2008-06-26(Thu) 12:24:53】 | Trackback:(0) | Comments:(0)

やおい? このエントリーをはてなブックマークに追加

特許庁、音やにおいを商標登録できるように法改正へ

http://gigazine.net/index.php?/news/comments/20080625_brand_sound/


という記事を

特許庁、音ややおいを商標登録できるように法改正へ

と空目した自分はもうダメだと思った


関連記事
雑談 | 【2008-06-26(Thu) 09:15:22】 | Trackback:(0) | Comments:(0)

putback_lru_page rework パッチがrejectされた このエントリーをはてなブックマークに追加

かなしい(;_;)
リベンジ! リベンジ!



関連記事
雑談 | 【2008-06-26(Thu) 09:12:02】 | Trackback:(0) | Comments:(0)

Linux 2.6.26-rc8 このエントリーをはてなブックマークに追加

んー、全部バグフィックスとみた。

・Slab: Fix memory leak in fallback_alloc()
・[IA64] SN2: security hole in sn2_ptc_proc_write
・sctp: Make sure N * sizeof(union sctp_addr) does not overflow.
・Ext4: Fix online resize block group descriptor corruption
・Fix performance regression on lmbench select benchmark
・Fix ZERO_PAGE breakage with vmware
・mm: fix race in COW logic
・x86: fix NULL pointer deref in __switch_to
・ipv6: Drop packets for loopback address from outside of the box.

ほか。





It hasn't been a week, I know, and this is a pretty small set of changes
since -rc7, but I'm going to be mostly incommunicado for the next week or
so, so I just released what will hopefully be the last -rc.

Or maybe not.

It depends on how good you all are while I'm not looking.

Anyway, most of the bulk of the changes here are to Xen and to KVM in
particular, which shows up as a rather unusual dirstat: 65% is in
arch/x86 (counting the asm-x86 changes too). The rest is mostly random
stuff, the appended ShortLog gives a reasonable idea. Several bugzilla
entries are hopefully now closed.

Here's the dirstat (whee - just 5% in drivers - that's a new one):

2.4% Documentation/DocBook/
4.3% Documentation/hwmon/
6.7% Documentation/
24.2% arch/x86/kernel/
5.2% arch/x86/kvm/
25.3% arch/x86/xen/
54.8% arch/x86/
55.4% arch/
3.2% drivers/hwmon/
5.2% drivers/
5.2% fs/nfs/
7.5% fs/
4.4% include/asm-alpha/
10.0% include/asm-x86/
16.5% include/
3.5% kernel/

and the - this time really fairly short - shortlog is appended.

What you don't see from this (maybe I should add some shortlog mode that
shows the size of the patches too) is that a lot of them are really just a
couple of lines (which is also why the KVM changes stand out so much -
they're bigger).

Linus
---
Alan Cox (1):
tty_driver: Update required method documentation

Avi Kivity (3):
KVM: MMU: Fix oops on guest userspace access to guest pagetable
KVM: ioapic: fix lost interrupt when changing a device's irq
KVM: VMX: Fix host msr corruption with preemption enabled

Benjamin Marzinski (1):
[GFS2] fix gfs2 block allocation (cleaned up)

Bernhard Walle (1):
Add return value to reserve_bootmem_node()

Bob Peterson (1):
[GFS2] BUG: unable to handle kernel paging request at ffff81002690e000

Christoph Lameter (1):
Slab: Fix memory leak in fallback_alloc()

Cliff Wickman (2):
[IA64] SN2: security hole in sn2_ptc_proc_write
[IA64] Handle count==0 in sn2_ptc_proc_write()

David Brownell (1):
hwmon: (lm75) sensor reading bugfix

David S. Miller (1):
sctp: Make sure N * sizeof(union sctp_addr) does not overflow.

Eli Cohen (1):
IB/mthca: Clear ICM pages before handing to FW

Eric W. Biederman (1):
netns: Don't receive new packets in a dead network namespace.

Frederic Bohe (1):
Ext4: Fix online resize block group descriptor corruption

Gerd Hoffmann (5):
x86: Add structs and functions for paravirt clocksource
x86: Make xen use the paravirt clocksource structs and functions
KVM: Make kvm host use the paravirt clocksource structs
x86: KVM guest: Use the paravirt clocksource structs and functions
KVM: Remove now unused structs from kvm_para.h

Gustavo Fernando Padovan (1):
removed unused var real_tty on n_tty_ioctl()

Hans de Goede (2):
hwmon: (abituguru3) Identify Abit AW8D board as such
hwmon: (abituguru3) update driver detection

Isaku Yamahata (1):
xen: Use wmb instead of rmb in xen_evtchn_do_upcall().

Ivan Kokshaysky (4):
alpha: fix module load failures on smp (bug #10926)
alpha: link failure fix
alpha: fix compile failures with gcc-4.3 (bug #10438)
alpha: resurrect Cypress IDE quirk

Jason Wessel (2):
kgdb: documentation update - remove kgdboe
kgdb: sparse fix

Jean Delvare (3):
hwmon: (lm85) Fix function RANGE_TO_REG()
hwmon: (adt7473) Initialize max_duty_at_overheat before use
hwmon: Update the sysfs interface documentation

Jeremy Fitzhardinge (3):
xen: mask unwanted pte bits in __supported_pte_mask
xen: don't drop NX bit
xen: remove support for non-PAE 32-bit

Jes Sorensen (1):
[IA64] Fix boot failure on ia64/sn2

Jie Luo (1):
enable bus mastering on i915 at resume time

Johannes Berg (1):
mac80211: detect driver tx bugs

Julia Lawall (1):
[IA64] Eliminate NULL test after alloc_bootmem in iosapic_alloc_rte()

Linus Torvalds (3):
Fix performance regression on lmbench select benchmark
Fix ZERO_PAGE breakage with vmware
Linux 2.6.26-rc8

Marc Hulsman (1):
hwmon: (w83791d) new maintainer

Marcelo Tosatti (4):
KVM: Fix race between timer migration and vcpu migration
KVM: close timer injection race window in __vcpu_run
KVM: MMU: Fix rmap_write_protect() hugepage iteration bug
KVM: MMU: large page update_pte issue with non-PAE 32-bit guests (resend)

Nick Piggin (1):
mm: fix race in COW logic

Oleg Nesterov (1):
sched: refactor wait_for_completion_timeout()

Peter Zijlstra (1):
sched: rt: dont stop the period timer when there are tasks wanting to run

Roland Dreier (1):
sched: fix wait_for_completion_timeout() spurious failure under heavy load

Shan Wei (1):
ipv6: Remove options header when setsockopt's optlen is 0

Stephen Hemminger (1):
pppoe: warning fix

Suresh Siddha (1):
x86: fix NULL pointer deref in __switch_to

Takashi Iwai (2):
ALSA: aw2 - Fix Oops at initialization
ALSA: sb - Fix wrong assertions

Thomas Gleixner (1):
futexes: fix fault handling in futex_lock_pi

Thorsten Kranzkowski (1):
alpha: fix compile error in arch/alpha/mm/init.c

Trond Myklebust (3):
NFS: Reduce the NFS mount code stack usage.
NFS: Fix filehandle size comparisons in the mount code
NFS: nfs_updatepage(): don't mark page as dirty if an error occurred

Wim Van Sebroeck (1):
Revert "[WATCHDOG] hpwdt: Add CFLAGS to get driver working"

YOSHIFUJI Hideaki (1):
ipv6: Drop packets for loopback address from outside of the box.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



関連記事
linux | 【2008-06-25(Wed) 11:46:14】 | Trackback:(0) | Comments:(0)

未読 このエントリーをはてなブックマークに追加

約一ヶ月ぶりにLKMLの未読が0になった

関連記事
雑談 | 【2008-06-24(Tue) 23:49:01】 | Trackback:(0) | Comments:(0)

filesystem freeze featureパッチ このエントリーをはてなブックマークに追加

NECのSatoさんから出ているfreezeパッチがよく分からん。
フリーズ中の書き込みを禁止する処理は何処に入っているんだ??


関連記事
linux | 【2008-06-24(Tue) 18:59:23】 | Trackback:(0) | Comments:(0)

おちゃめなGreg このエントリーをはてなブックマークに追加

[patch 00/10] 2.6.28.9-rc2 review

なんていうパッチシリーズが流れているから何事かと思ったら
直後にGregから

That should read "2.6.25.9-rc2 review", sorry about that.

ってきた。
Gregは未来に生きています。

関連記事
linux | 【2008-06-24(Tue) 14:19:42】 | Trackback:(0) | Comments:(0)

カーネルのバグでVMwareが動かなくなっていたのが直ったみたい このエントリーをはてなブックマークに追加

Nick PigginがZERO PAGE を廃止したときに、ミスがあって消費メモリ量が増えてしまって
レグレッション騒ぎが最近あったんだけど、その修正がさらにレグレッションをしていました。
という話。

バグは昔からあったのだが、今まではたまたま通っていなかったそうだ。
てゆーか、Linus、こっそりチェックインすんな。


Commit 89f5b7da2a6bad2e84670422ab8192382a5aeb9f ("Reinstate ZERO_PAGE
optimization in 'get_user_pages()' and fix XIP") broke vmware, as
reported by Jeff Chua:

"This broke vmware 6.0.4.
Jun 22 14:53:03.845: vmx| NOT_IMPLEMENTED
/build/mts/release/bora-93057/bora/vmx/main/vmmonPosix.c:774"

and the reason seems to be that there's an old bug in how we handle do
FOLL_ANON on VM_SHARED areas in get_user_pages(), but since it only
triggered if the whole page table was missing, nobody had apparently hit
it before.

The recent changes to 'follow_page()' made the FOLL_ANON logic trigger
not just for whole missing page tables, but for individual pages as
well, and exposed this problem.

This fixes it by making the test for when FOLL_ANON is used more
careful, and also makes the code easier to read and understand by moving
the logic to a separate inline function.

Reported-and-tested-by: Jeff Chua
Signed-off-by: Linus Torvalds

mm/memory.c patch | blob | history

diff --git a/mm/memory.c b/mm/memory.c
index 9aefaae..423e0e7 100644 (file)
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -1045,6 +1045,26 @@ no_page_table:
return page;
}

+/* Can we do the FOLL_ANON optimization? */
+static inline int use_zero_page(struct vm_area_struct *vma)
+{
+ /*
+ * We don't want to optimize FOLL_ANON for make_pages_present()
+ * when it tries to page in a VM_LOCKED region. As to VM_SHARED,
+ * we want to get the page from the page tables to make sure
+ * that we serialize and update with any other user of that
+ * mapping.
+ */
+ if (vma->vm_flags & (VM_LOCKED | VM_SHARED))
+ return 0;
+ /*
+ * And if we have a fault or a nopfn routine, it's not an
+ * anonymous region.
+ */
+ return !vma->vm_ops ||
+ (!vma->vm_ops->fault && !vma->vm_ops->nopfn);
+}
+
int get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
unsigned long start, int len, int write, int force,
struct page **pages, struct vm_area_struct **vmas)
@@ -1119,8 +1139,7 @@ int get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
foll_flags = FOLL_TOUCH;
if (pages)
foll_flags |= FOLL_GET;
- if (!write && !(vma->vm_flags & VM_LOCKED) &&
- (!vma->vm_ops || !vma->vm_ops->fault))
+ if (!write && use_zero_page(vma))
foll_flags |= FOLL_ANON;

do {


関連記事
linux | 【2008-06-24(Tue) 13:49:33】 | Trackback:(0) | Comments:(0)

諸般の事情で このエントリーをはてなブックマークに追加

今月もkernel watchを書くことになりました

関連記事
雑談 | 【2008-06-23(Mon) 22:24:19】 | Trackback:(0) | Comments:(4)

Linux Symposium このエントリーをはてなブックマークに追加

Linux Foundationから次回の案内来た
まあ、きっと行くんでしょう。

これまでにThe Linux Foundation Japan Symposiumに参加された方へ

 第8回 The Linux Foundation Japan Symposium開催案内をお送りいたします。
 今回のシンポジウムでは、Linux Kernelの最新状況、および、Linuxセキュリティの技
 術動向と今後の展望について講演します。
 是非ご参加をご検討ください。
 また、ご興味のありそうな方へもご回送いただければ幸いです。


Symposium担当
----------------------------------------------------------------------------

=== 2008年7月9日(水) 第8回 The Linux Foundation Japan Symposium ===

The Linux Foundationは、Linuxへの関心を高め、Linuxの成長を促進することを
目的に活動しています。この活動の一環として、国外から Linux/OSS関連システム
開発コミュニティのリーダーを招聘し、日本のソフトウェア技術者向けのイベント
「The Linux Foundation Japan Symposium」を定期的に開催しています。


第8回 The Linux Foundation Japan Symposium
日 時 2008年7月9日(水曜日)9時30分 ~ 17時30分(9時00分受付開始)
場 所 大手町KDDIホール    
    http://www.kddihall.co.jp/info.html
    東京都千代田区大手町1-8-1 KDDI大手町ビル2F Tel.03-3243-9301

テーマ The Latest Kernel and Security

参加費 無料 (事前登録制)
定 員 150名(定員となり次第 受付終了)
対 象 Linux に関心があるソフトウェア開発者、 オープンソースのソフトウェア開発
に貢献したい開発者

プログラムの内容は変更されることがあります。
プレゼンテーションの内容については事前にこのWEBページにてダウンロードできる
ようにする予定です。

** 申込みフォーム内に講演者への事前質問の欄を作りました。戴いた質問は、事前に
講演者に渡し、講演やその後のQ/Aの参考にさせて戴きます。質問は、セミナーの1週間
前まで受付ける予定です。**

----------------------------------------------------------------------------

1. 9:30- 9:40 Opening Remark
2. 9:40-10:40 The Completely Fair Scheduler ---- Thomas Gleixner (linutronix)

CFS(Compeletely Fair Scheduler)は、カーネル2.5以来ずっとLinuxのCPU資源の管理を
担ってきたO(1)スケジューラーを置き換え、カーネル2.6.23に組み込まれました。

CFS と言う言い方自体、実は、この新しいプロセススケジューラーが持つ機能全体を表
現してはいません。たしかに、公平性(fairness)の部分は、O (1)スケジューラーの不足
機能として最も注意を惹きやすいところですし、また、CFSは、O(1)スケジューラーを拡
張した発見的手法であり、完全な応答性と公平性を実現しています。

今回の講演では、この新しいスケジューラーの基本概念を説明し、さらに、いろいろな
機能拡張についても詳説します。
資料: 準備中

3. 10:40-10:50 Coffee Break

4. 10:50-11:50 The Recent Kernel Updates(仮) ---- Andrew Morton (Google)

Linuxカーネルの最新状況に関して簡単に状況報告をした後、できるだけ多くの時間を質
問時間に充てます。

最初に、Linuxユーザの観点から、Linuxを使う際の質問、問題点指摘を募ります。次
に、Linux開発チームを管轄するマネジャーの観点からの質問、コメントを募ります。最
後に、カーネル開発に関して自由に討議する時間を取ります。
資料: 準備中

5. 11:50-13:00 Lunch Break

6. 13:00-14:00 SELinux Project Overview ---- James Morris (Red Hat)

Linux のセキュリティ強化を目差すSELinuxプロジェクトは、強制アクセス制御
(Mandatory Access Control:MAC)をLinuxに作りこみました。広範なセキュリティ要件に
合致するように設計されたSELinuxは、広く利用されているOSとしては、初めてMACセ
キュリティを実現したものと言えます。

SELinuxプロジェクトは、セキュリティの実現に向けたオープンな共同開発作業が、いか
に従来のやり方では達成できないような技術革新をもたらしたかを示す実例です。当初
は複雑過ぎるという問題もありましたが、 SELinuxは最近、急速に進化しており、使い
勝手の改善や、機能の強化がなされています。

今回の講演では、プロジェクトの概観、動作原理、設計目標、今後のマイルストーンな
どを説明します。最近の開発成果と継続中の開発にも触れます。本講演の目的は、
SELinuxがいろいろなセキュリティ目標実現のために利用できることを理解して頂くこと
にあります。
資料: 準備中

7. 14:00-14:10 Break

8. 14:10-15:10 Introduction to Labeled Networking on Linux ---- Paul Moore (HP)

最新のLinuxでは、SELinuxやSmackというようなLSM(Linux Security Module)を活用した
セキュリティ機能が具わっています。これらのLSMは、OS環境の全ての側面に渡り、それ
らのセキュリティポリシーやアクセス制御にLabeled Securityと呼ばれる概念を適用し
ています。Labeled Networkingは、Labeled Securityの概念のネットワークレイヤーへ
の拡張であり、セキュリティラベルに基づくネットワークのアクセス制御を実現する技
術です。

本講演では、Labeled Networkingの導入説明、Linuxカーネルにおけるいろいろな
Labeled Networkingの説明、さらに、それらのおのおのがなぜ重要なのかを解説しま
す。現在のLabeled Networkingの機能および現在開発中の状況にも触れます。最後に、
Labeled Networkingに影響を与える協調や標準化の状況を示し、それらがLinuxに与える
影響について注意喚起します。
資料: 準備中

9. 15:10-15:20 Coffee Break

10. 15:20-16:20 Realities of Mainlining - Case of the TOMOYO Linux Project ---
原田季栄(NTT Data)
TOMOYO Linuxのメインライン化の道のりについて、どう考えて、何を行い、どう感じた
かを「失敗体験を含めて」共有し、参加者の皆さんの参考にしていただきたいと思います。
資料: 準備中

11. 16:20-16:30 Break

12. 16:30-17:30 Panel Discussion:Procedure and Tools for Kernel Development
(仮) ---Andrew Morton、Thomas Gleixner、柴田次一(NEC)
カーネル開発の作法、道具について、最近の状況・変化の様子を紹介していただきます。

13. 17:30-17:35 Closing Remark

----------------------------------------------------------------------------



関連記事
雑談 | 【2008-06-23(Mon) 11:28:39】 | Trackback:(0) | Comments:(1)

物好きな このエントリーをはてなブックマークに追加

"J. Todd Slack"
とかいうひとが、fsdevelにオレ、reiserfs4のメンテナになりたいんだけど・・
などとメールしている。

今のところ、誰からも反応は付いていないようだが、いまさら、そんなもんを
やりたがる勇気には敬意を表する


Hello All,

I have spend a long time over the last years studying Resier 3 and
Resier4.

How would I go about becoming the new Resier maintainer?

I would like to work on changing Resier appropriately to get accepted
in the the kernel. I am sure that I am not aware of all issues at this
point, but I have known of some issues.

I have attempted to contact Edward Shishkin, but no response.

Would anyone have thoughts?

Thanks!

-Jason

--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html



関連記事
linux | 【2008-06-19(Thu) 11:35:41】 | Trackback:(0) | Comments:(0)

regression 祭りの進捗 このエントリーをはてなブックマークに追加

いっぱいバグフィックスが出てきて訳が分からなくなってきたので整理

1.VM_BUG_ON(page_count(page) != 1) で死ぬ件 その1

Nick Pigginの speculative page cache とのパッチコンフリクトで発生していた。
putback_lru_page()でで死亡。
Lee Schermerhornが修正。
済み。

2.VM_BUG_ON(page_count(page) != 1) で死ぬ件 その2

1の類似障害。ページマイグレーションで死亡。
Daisuke Nishimura が修正。
済み。

3.badpage が起きる件 その1
mlock中のページを解放してると出てた件。
Dave Hansen のpage walkerの修正とコンフリクトしてた。
Lee Schermerhornが修正。
済み。

4.badpage が起きる件 その2
Daisuke Nishimura が報告してる方。再現できねーーー

5./proc/meminfo のMlocked 欄が狂ってる件
2.6.26-rc5-mm2 のときにHugh Dickins がパッチを投げてたが、splice の修正と一緒くたになっていたことが原因で取り込まれてなかった。
分離して再送した。
済み

6./proc/meminfo のanon, file別のメモリ量が狂ってる件
Lee Schermerhornが修正。
済み

だから、明示的に残っている問題は4だけで、あとは、KAMEZAWAさんから出ているputback_lru_page()のレビューとかSEQ replacementのCGROUP対応パッチとかそのへんか。











関連記事
linux | 【2008-06-18(Wed) 19:31:25】 | Trackback:(0) | Comments:(0)

ふぎゃー このエントリーをはてなブックマークに追加

regression起こして西村さんにむっさ怒られ中。
至急直す

関連記事
雑談 | 【2008-06-17(Tue) 17:54:16】 | Trackback:(0) | Comments:(0)

食パンマンの顔は何枚切りなんですか? このエントリーをはてなブックマークに追加

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail.php?qid=1315883


あの回答で解決済みなっている事に感動する

関連記事
ねた | 【2008-06-17(Tue) 13:39:38】 | Trackback:(0) | Comments:(0)

split lru seriesのベンチマーク結果 このエントリーをはてなブックマークに追加

ちょっと古いけど、Andrew Mortonがベンチマーク結果を投稿している


On Wed, 11 Jun 2008 14:42:14 -0400 Rik van Riel wrote:

> On large memory systems, the VM can spend way too much time scanning
> through pages that it cannot (or should not) evict from memory. Not
> only does it use up CPU time, but it also provokes lock contention
> and can leave large systems under memory presure in a catatonic state.

Hey, I did some MM testing!


On a 900MB 2-way, allocate and memset 1000MB.

mainline:

vmm:/home/akpm> time usemem -m 1000
usemem -m 1000 0.10s user 10.27s system 62% cpu 16.567 total
vmm:/home/akpm> time usemem -m 1000
usemem -m 1000 0.12s user 10.23s system 63% cpu 16.234 total
vmm:/home/akpm> time usemem -m 1000
usemem -m 1000 0.13s user 9.90s system 63% cpu 15.812 total
vmm:/home/akpm> time usemem -m 1000
usemem -m 1000 0.11s user 9.98s system 65% cpu 15.494 total
vmm:/home/akpm> time usemem -m 1000
usemem -m 1000 0.12s user 9.94s system 62% cpu 16.000 total

2.6.26-rc5-mm3:

vmm:/home/akpm> time usemem -m 1000
usemem -m 1000 0.15s user 9.81s system 52% cpu 19.117 total
vmm:/home/akpm> time usemem -m 1000
usemem -m 1000 0.14s user 9.07s system 45% cpu 20.403 total
vmm:/home/akpm> time usemem -m 1000
usemem -m 1000 0.25s user 9.63s system 34% cpu 28.533 total
vmm:/home/akpm> time usemem -m 1000
usemem -m 1000 0.15s user 9.35s system 49% cpu 19.196 total
vmm:/home/akpm> time usemem -m 1000
usemem -m 1000 0.13s user 8.79s system 49% cpu 17.993 total

Seems to have saved a little CPU but the IO patterns got worse.


usememでは一長一短だと言っているが、このあと、Rik van Rielが問題は分かっているので
直せると回答した。


qsbench, 4 processes, memory size tuned to threshold-of-swapping*1.1:

Mainline:

vmm:/home/akpm/qsbench> time ./qsbench -p 4 -m 230
./qsbench -p 4 -m 230 175.45s user 45.67s system 60% cpu 6:08.40 total

2.6.26-rc5-mm3:

vmm:/home/akpm/qsbench> time ./qsbench -p 4 -m 230
./qsbench -p 4 -m 230 178.21s user 28.49s system 99% cpu 3:27.14 total

So woot! Professional qsbench users will be pleased ;) It could have
been a fluke though - iirc qsbench is pretty unstable, especially on
the threshold.


Main thing is: it seems stable. Old LTP ran for an hour or so before I
hit the msgctl08 crash (which is a regression in current mainline).


で、こっちは split lruの本領発揮ケースで性能2倍。


関連記事
linux | 【2008-06-17(Tue) 11:40:09】 | Trackback:(0) | Comments:(0)

NyaRuRuさんの「日記の登録ボタンを押してみたら,はてなが長時間のメンテナンス中だったときするべきこと」で目から鱗が27枚ほど落ちた件について このエントリーをはてなブックマークに追加

ネタばらしはしたくないので、だまって以下のリンクへ飛べ!
はてダのユーザは必見!!

http://d.hatena.ne.jp/NyaRuRu/20080611/p2


実用性云々よりも、まず、その発想にほれぼれだお (゚∀゚)





関連記事
blog | 【2008-06-16(Mon) 18:27:04】 | Trackback:(0) | Comments:(0)

なんで、pthread_once()なんて存在するの? このエントリーをはてなブックマークに追加

http://d.hatena.ne.jp/amachang/20080612/1213244820


お気に入りなサイトのIT戦記より


// ここを volatile にする
// (この変数の値はアトミック(つまり、レジスタにだけあってメモリにないということがない変数に)になる)
volatile char* p = NULL;
pthread_mutex_t m;

void* f(void* _p) {

// ロックかからない
if (p == NULL) {
pthread_mutex_lock(&m);

// ここからはクリティカルセクション

// 一個目の初期化時にここでブロックしたスレッドのために
// もう一回 NULL チェック
if (p == NULL) {

// ここではまだ p に代入しない
// 代入したら別スレッドで初期化されていない p が返ってしまう
char* tmp = (char*)malloc(10);
strcpy(tmp, "hoge");

// クリティカルセクションの最後で代入
p = tmp;
}
pthread_mutex_unlock(&m);
}

*(char**)_p = p;
}


バグっとるよ。
コンパイラは最適化で、tmpを消してpに直接malloc結果を入れる権利があるので、
最初のロック外のif文で!NULLになっても、それは初期化が終わってないかもしれない。

基本的にメモリバリアーを理解してないと、DCLパターンは地雷。
pthread_once()推奨。
(てゆーか、まさにこのためにpthread_once()はある。pthread_mutex()から構築できるようなコンビニエンス関数は規格に入れないぜ。といっていたPOSIXがpthread_onceを入れた理由はここにある)

以下、わかりやすいまとめサイトへの誘導。

バイナリアンなmemologueさんのサイト:
http://d.hatena.ne.jp/yupo5656/20041011/p1


注意: このページではx86用のメモリバリアを
   __asm__ __volatile__ ( "" ::: "memory" );
と紹介していますが、これはユニプロセッサ用なので、Core DuoなまかーなAmachanはちゃんとlfence, sfence命令を入れないとやばいです。


Effective C++を書いたScott Meyersさんのサイト
http://www.nwcpp.org/Downloads/2004/DCLP_notes.pdf


最近、社内向けにメモリバリアのドキュメントを書いたばかりなので、反響があればブログにうpする。


バリアー
光子力バリアー! ランキング!




関連記事
linux | 【2008-06-16(Mon) 11:59:22】 | Trackback:(0) | Comments:(5)

世界樹の樹II このエントリーをはてなブックマークに追加

http://d.hatena.ne.jp/shiumachi/20080615/1213513553


ぬおー、なんという素晴らしい紹介ページなのだ。
買いましたよ。ちゃんと。
残念ながら、記事を読む前に買っちゃったけど。

ちょうど、事情により特に忙しいわけでもないのに3日ほど徹夜する必要が出てきて、暇つぶしに
めちゃくちゃ役立ちましたよ。

で、感想。
これ、完全やりこみゲー
面白いのはたしかだが、通勤に電車を使わないオイラにはクリア出来る気が少しもしない(^^;


関連記事
雑談 | 【2008-06-15(Sun) 23:17:28】 | Trackback:(0) | Comments:(6)

2chのLinuxスレッドでの不思議 このエントリーをはてなブックマークに追加

http://pc11.2ch.net/test/read.cgi/linux/1196581993/


を見るとなんか、いろいろと書かれているな。
で、返事をしようと思ったら2ch側の都合で書き込み禁止タイムだったので、こちらで。

258 名前:login:Penguin[sage] 投稿日:2008/06/15(日) 11:20:59 ID:C0/eukrT
ブログの方も宣伝だらけだから見てこいや

と宣伝



なんでアンタは僕の個人日記ブログのURLを知っているんじゃよー ( ゚Д゚)

259 名前:login:Penguin[sage] 投稿日:2008/06/15(日) 11:38:55 ID:pDKI+CRl
LKMLの方でも頑張ってますな。
Reviewd-byなんて誰も見てねえと思うが。



いや、Andrew Mortonは再三にわたってレビューワがもっと欲しいと言っている。
どうせ業務上、コードは読むのだから多少の恩返しはすべきかと。
おいらがReviewed-byつけたやつは高確率で数日以内に-mmに入るので、
すくなくとも、Andrewは見てるっぽい。

てゆーか、LKML読んでるならそっちで書けや(#゚Д゚)ゴルァ
とか思ってしまうな。
オープンソースの中でも屈指のすごしやすいコミュニティだと思うよ。

関連記事
雑談 | 【2008-06-15(Sun) 23:07:58】 | Trackback:(0) | Comments:(0)

PG_mlocked の扱いについて このエントリーをはてなブックマークに追加

PG_mlockedの扱いについて議論が続いている。
一番もめているのは64bitマシンでしかONに出来ないという仕様。
Linuxのpage構造体のflagsメンバはzoneが4つ、ノードが64個をサポートするために、
2+6=8bit ほど無駄に使われていて、もうビットが残っていなかったのだ。

で、Andorew Mortonが強烈に反対していて、32bitでNUMAサポートを
捨ててもいいからPG_mlockedをONに出来るようにしよう。とか言い出してる。

この人が、人がまだ、つかってる機能を捨ててもいいからって言い出すのは超珍しいような。


関連記事
linux | 【2008-06-11(Wed) 11:47:05】 | Trackback:(0) | Comments:(1)

Nick Pigginのせいで急遽 2.6.25-rc5-mm2がリリースされたようです このエントリーをはてなブックマークに追加

2.6.25-rc5-mm1 のバグ報告がいっぱい飛んでいたので、おれかな?と心配していたのですが、犯人はいつものように、Nickです。
やつは、Linuxカーネル界で唯一テストせずにパッチを突っ込んでくるからなー

追記: すいません、識者からNick Pigginは唯一神じゃない。大神 Ingo Mornarを忘れている。とツッコミを受けました。
カーネル界は八百万の神々がおわしますなぁー

関連記事
linux | 【2008-06-11(Wed) 09:58:09】 | Trackback:(0) | Comments:(0)
次のページ
  1. 無料アクセス解析