Again, the code fragment is as follows: 1 rcu_read_lock(); 2 p = rcu_dereference(gp); 3 if (must_delete(p)) { 4 spin_lock(&my_lock); 5 if (must_delete(p)) { 6 kfree_rcu(p); 7 rcu_assign_pointer(gp, q); 8 already_deleted(p); 9 } 10 spin_unlock(&my_lock); 11 } else { 12 do_something_with(p); 13 } 14 rcu_read_unlock(); This is a bit unconventional: Normally lines 6 and 7 would be interchanged. But th
Again, the semi-fixed code fragment is as follows: 1 struct foo { 2 struct list_head list; 3 int key; 4 int data; 5 }; 6 7 LIST_HEAD(mylist); 8 DEFINE_SPINLOCK(mylock); 9 struct foo *cache; 10 11 int search(int key, int *data) 12 { 13 struct foo *p; 14 15 rcu_read_lock(); 16 p = rcu_dereference(cache); 17 if (p != NULL && p->key == key) 18 goto found; 19 list_for_each_entry_rcu(p, &mylist, list) 2
git [-v | --version] [-h | --help] [-C <path>] [-c <name>=<value>] [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path] [-p | --paginate | -P | --no-pager] [--no-replace-objects] [--no-lazy-fetch] [--no-optional-locks] [--no-advice] [--bare] [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>] [--config-env=<name>=<envvar>] <command> [<args>] Git is a fast, scalable, distributed
HTM is likely to be at its best for large in-memory data structures that are difficult to statically partition but that are dynamically partitionable (in other words, the conflict probability is reasonably low). There must be a reasonable non-TM fallback algorithm for every transaction. The workload should ideally be update-heavy with small accesses and updates, and not subject to aggressive real-
Why are there no forward-progress guarantees for hardware transactional memory (HTM)? Only the HTM vendors know for sure, but here are a few possible reasons: HTM transactions cannot tolerate non-idempotent operations such as I/O and system calls, so any forward-progress guarantees will apply only to transactions that operate only on normal memory. HTM transactions whose data falls into the same c
Why are there size limits for hardware transactional memory (HTM)? Here are a few possible reasons: HTM implementations typically use caches and speculative execution to make each transaction appear atomic with respect to other transactions. This means that cache geometry limits the maximum size of the transaction: A transaction that cannot fit into cache cannot complete successfully. Note that ca
Is Parallel Programming Hard, And, If So, What Can You Do About It? Edited by: Paul E. McKenney Linux Technology Center IBM Beaverton paulmck@linux.vnet.ibm.com December 16, 2011 ii Legal Statement This work represents the views of the authors and does not necessarily represent the view of their employers. IBM, zSeries, and Power PC are trademarks or regis- tered trademarks of International Busine
This document presents a specification for a version 2 of Git’s wire protocol. Protocol v2 will improve upon v1 in the following ways: Instead of multiple service names, multiple commands will be supported by a single service Easily extendable as capabilities are moved into their own section of the protocol, no longer being hidden behind a NUL byte and limited by the size of a pkt-line Separate ou
Is Parallel Programming Hard, And, If So, What Can You Do About It? The current version is v2023.06.11a [PDF] (single-column format [PDF], ebook format [PDF], change log). The default double-column format is easiest on both the trees and the eyes in paperback book form. The single-column format works well on large-format ebook readers. Smartphones and smaller ebook readers get better results with
init Initializes an empty Git repository with additional metadata directories for git svn. The Subversion URL may be specified as a command-line argument, or as full URL arguments to -T/-t/-b. Optionally, the target directory to operate on can be specified as a second argument. Normally this command initializes the current directory. -T<trunk-subdir> --trunk=<trunk-subdir> -t<tags-subdir> --tags=<
This section is a modified version of http://en.wikipedia.org/wiki/Initrd which is licensed under the Creative Commons Attribution/Share-Alike License. An initial ramdisk is a temporary file system used in the boot process of the Linux kernel. initrd and initramfs refer to slightly different schemes for loading this file system into memory. Both are commonly used to make preparations before the re
Many Git porcelainish commands take a mixture of flags (i.e. parameters that begin with a dash -) and parameters meant for the underlying git rev-list command they use internally and flags and parameters for the other commands they use downstream of git rev-list. The primary purpose of this command is to allow calling programs to distinguish between them. There are a few other operation modes that
../ 2.6.22/ 08-Aug-2013 18:24 - 2.6.23/ 08-Aug-2013 18:26 - 2.6.24/ 08-Aug-2013 18:27 - 2.6.25/ 08-Aug-2013 18:27 - 2.6.26/ 08-Aug-2013 18:28 - 2.6.29/ 08-Aug-2013 18:28 - 2.6.31/ 04-Nov-2014 14:19 - 2.6.33/ 08-Aug-2013 18:29 - 3.0/ 19-Nov-2013 22:02 - 3.10/ 23-Nov-2017 05:44 - 3.12/ 08-Jun-2017 13:40 - 3.14/ 13-Feb-2017 22:26 - 3.18/ 23-May-2019 16:23 - 3.2/ 23-Nov-2017 05:53 - 3.4/ 16-Nov-2016 1
git config credential.https://example.com.username myusername git config credential.helper "$helper $options" Git will sometimes need credentials from the user in order to perform operations; for example, it may need to ask for a username and password in order to access a remote repository over HTTP. Some remotes accept a personal access token or OAuth access token as a password. This manual descr
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く