{"published":"2014-12-13 11:05:56","width":"100%","height":"190","url":"https://kernhack.hatenablog.com/entry/2014/12/13/110556","author_url":"https://blog.hatena.ne.jp/masami256/","blog_title":"\u03c6(\u30fb\u30fb*)\u309e \uff73\uff70\uff9d\u3000\u30ab\u30fc\u30cd\u30eb\u3068\u304b\u5f04\u3063\u305f\u308a\u306e\u30e1\u30e2","image_url":"http://ecx.images-amazon.com/images/I/61D4a0a58zL.jpg","blog_url":"https://kernhack.hatenablog.com/","provider_url":"https://hatena.blog","categories":["kernel","linux"],"type":"rich","author_name":"masami256","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fkernhack.hatenablog.com%2Fentry%2F2014%2F12%2F13%2F110556\" title=\"Linux\u30ab\u30fc\u30cd\u30eb\u3067\u898b\u308b\u6700\u9069\u5316\u306e\u6280 - \u03c6(\u30fb\u30fb*)\u309e \uff73\uff70\uff9d\u3000\u30ab\u30fc\u30cd\u30eb\u3068\u304b\u5f04\u3063\u305f\u308a\u306e\u30e1\u30e2\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","title":"Linux\u30ab\u30fc\u30cd\u30eb\u3067\u898b\u308b\u6700\u9069\u5316\u306e\u6280","provider_name":"Hatena Blog","version":"1.0","description":"\u3053\u306e\u8a18\u4e8b\u306fLinux Advent Calendar 2014\u306e13\u65e5\u76ee\u3067\u3059\u3002 LWN\u306eACCESS_ONCE() and compiler bugs\u3092\u8aad\u3093\u3067\u306a\u308b\u307b\u3069\u306d\u30fc\u3068\u601d\u3063\u305f\u306e\u3067\u305d\u306e\u8fba\u306b\u3064\u3044\u3066\u66f8\u3044\u3066\u307f\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002 \u6700\u9069\u5316\u306e\u6280\u3068\u8a00\u3044\u3064\u3064\u5b9f\u969b\u306f\u6700\u9069\u5316\u3055\u305b\u3059\u304e\u306a\u3044\u6280\u306a\u3093\u3067\u3059\u304c\uff3c(^o^)\uff0f \u307e\u305aACCESS_ONCE\u30de\u30af\u30ed\u306e\u5f79\u5272\u3067\u3059\u304c\u3001\u3053\u308c\u306f\u5fc5\u305a\u30c7\u30fc\u30bf\u3092\u8aad\u307f\u305f\u3044\u3068\u3044\u3046\u5834\u5408\u306b\u4f7f\u3063\u3066\u307e\u3059\u3002 \u4f8b\u3048\u3070\u3053\u3093\u306a\u30b3\u30fc\u30c9\u304c\u3042\u3063\u305f\u3068\u304d\u306b\uff08\u304b\u306a\u308a\u9069\u5f53\u3067\u3059\u304c\u96f0\u56f2\u6c17\u306f\u63b4\u3081\u308b\u306f\u305a\uff09 while (1) { struct foobar *p = foo; if (p->hoge) { .... } } \u30b3\u30f3\u30d1\u30a4\u30e9\u306f\u3053\u306e\u2026"}