__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
<!DOCTYPE html>
<html lang="en" data-content_root="../">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>RCU Handbook — The Linux Kernel documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=fa44fd50" />
<link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=3918102e" />
<script src="../_static/documentation_options.js?v=5929fcd5"></script>
<script src="../_static/doctools.js?v=9bcbadda"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Review Checklist for RCU Patches" href="checklist.html" />
<link rel="prev" title="The padata parallel execution mechanism" href="../core-api/padata.html" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
</head><body>
<div class="document">
<div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html">
<img class="logo" src="../_static/logo.svg" alt="Logo of The Linux Kernel"/>
</a></p>
<h1 class="logo"><a href="../index.html">The Linux Kernel</a></h1>
<p class="blurb">6.18.50</p>
<search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>
<p>
<h3 class="kernel-toc-contents">Contents</h3>
<input type="checkbox" class="kernel-toc-toggle" id = "kernel-toc-toggle" checked>
<label class="kernel-toc-title" for="kernel-toc-toggle"></label>
<div class="kerneltoc" id="kerneltoc">
<ul>
<li class="toctree-l1"><a class="reference internal" href="../process/development-process.html">Development process</a></li>
<li class="toctree-l1"><a class="reference internal" href="../process/submitting-patches.html">Submitting patches</a></li>
<li class="toctree-l1"><a class="reference internal" href="../process/code-of-conduct.html">Code of conduct</a></li>
<li class="toctree-l1"><a class="reference internal" href="../maintainer/index.html">Maintainer handbook</a></li>
<li class="toctree-l1"><a class="reference internal" href="../process/index.html">All development-process docs</a></li>
</ul>
<ul class="current">
<li class="toctree-l1 current"><a class="reference internal" href="../core-api/index.html">Core API</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="../core-api/index.html#core-utilities">Core utilities</a></li>
<li class="toctree-l2"><a class="reference internal" href="../core-api/index.html#data-structures-and-low-level-utilities">Data structures and low-level utilities</a></li>
<li class="toctree-l2"><a class="reference internal" href="../core-api/index.html#low-level-entry-and-exit">Low level entry and exit</a></li>
<li class="toctree-l2 current"><a class="reference internal" href="../core-api/index.html#concurrency-primitives">Concurrency primitives</a><ul class="current">
<li class="toctree-l3"><a class="reference internal" href="../core-api/refcount-vs-atomic.html">refcount_t API compared to atomic_t</a></li>
<li class="toctree-l3"><a class="reference internal" href="../core-api/irq/index.html">IRQs</a></li>
<li class="toctree-l3"><a class="reference internal" href="../core-api/local_ops.html">Semantics and Behavior of Local Atomic Operations</a></li>
<li class="toctree-l3"><a class="reference internal" href="../core-api/padata.html">The padata parallel execution mechanism</a></li>
<li class="toctree-l3 current"><a class="current reference internal" href="#">RCU Handbook</a></li>
<li class="toctree-l3"><a class="reference internal" href="../core-api/wrappers/memory-barriers.html">Linux kernel memory barriers</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../core-api/index.html#low-level-hardware-management">Low-level hardware management</a></li>
<li class="toctree-l2"><a class="reference internal" href="../core-api/index.html#memory-management">Memory management</a></li>
<li class="toctree-l2"><a class="reference internal" href="../core-api/index.html#interfaces-for-kernel-debugging">Interfaces for kernel debugging</a></li>
<li class="toctree-l2"><a class="reference internal" href="../core-api/index.html#everything-else">Everything else</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../driver-api/index.html">Driver APIs</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="../subsystem-apis.html">Subsystems</a><ul class="current">
<li class="toctree-l2 current"><a class="reference internal" href="../subsystem-apis.html#core-subsystems">Core subsystems</a><ul class="current">
<li class="toctree-l3 current"><a class="reference internal" href="../core-api/index.html">Core API Documentation</a></li>
<li class="toctree-l3"><a class="reference internal" href="../driver-api/index.html">Driver implementer’s API guide</a></li>
<li class="toctree-l3"><a class="reference internal" href="../mm/index.html">Memory Management Documentation</a></li>
<li class="toctree-l3"><a class="reference internal" href="../power/index.html">Power Management</a></li>
<li class="toctree-l3"><a class="reference internal" href="../scheduler/index.html">Scheduler</a></li>
<li class="toctree-l3"><a class="reference internal" href="../timers/index.html">Timers</a></li>
<li class="toctree-l3"><a class="reference internal" href="../locking/index.html">Locking</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../subsystem-apis.html#human-interfaces">Human interfaces</a></li>
<li class="toctree-l2"><a class="reference internal" href="../subsystem-apis.html#networking-interfaces">Networking interfaces</a></li>
<li class="toctree-l2"><a class="reference internal" href="../subsystem-apis.html#storage-interfaces">Storage interfaces</a></li>
<li class="toctree-l2"><a class="reference internal" href="../subsystem-apis.html#other-subsystems">Other subsystems</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../locking/index.html">Locking</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../process/license-rules.html">Licensing rules</a></li>
<li class="toctree-l1"><a class="reference internal" href="../doc-guide/index.html">Writing documentation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../dev-tools/index.html">Development tools</a></li>
<li class="toctree-l1"><a class="reference internal" href="../dev-tools/testing-overview.html">Testing guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="../kernel-hacking/index.html">Hacking guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="../trace/index.html">Tracing</a></li>
<li class="toctree-l1"><a class="reference internal" href="../fault-injection/index.html">Fault injection</a></li>
<li class="toctree-l1"><a class="reference internal" href="../livepatch/index.html">Livepatching</a></li>
<li class="toctree-l1"><a class="reference internal" href="../rust/index.html">Rust</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../admin-guide/index.html">Administration</a></li>
<li class="toctree-l1"><a class="reference internal" href="../kbuild/index.html">Build system</a></li>
<li class="toctree-l1"><a class="reference internal" href="../admin-guide/reporting-issues.html">Reporting issues</a></li>
<li class="toctree-l1"><a class="reference internal" href="../tools/index.html">Userspace tools</a></li>
<li class="toctree-l1"><a class="reference internal" href="../userspace-api/index.html">Userspace API</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../firmware-guide/index.html">Firmware</a></li>
<li class="toctree-l1"><a class="reference internal" href="../devicetree/index.html">Firmware and Devicetree</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../arch/index.html">CPU architectures</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../staging/index.html">Unsorted documentation</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../translations/index.html">Translations</a></li>
</ul>
</div>
<script type="text/javascript"> <!--
var sbar = document.getElementsByClassName("sphinxsidebar")[0];
let currents = document.getElementsByClassName("current")
if (currents.length) {
sbar.scrollTop = currents[currents.length - 1].offsetTop;
}
--> </script>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../_sources/RCU/index.rst.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
</div>
</div>
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="language-selection">
English
<ul>
<li><a href="../translations/it_IT/RCU/index.html">Italian</a></li>
</ul>
</div>
<section id="rcu-handbook">
<span id="id1"></span><h1>RCU Handbook<a class="headerlink" href="#rcu-handbook" title="Link to this heading">¶</a></h1>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="checklist.html">Review Checklist for RCU Patches</a></li>
<li class="toctree-l1"><a class="reference internal" href="lockdep.html">RCU and lockdep checking</a></li>
<li class="toctree-l1"><a class="reference internal" href="lockdep-splat.html">Lockdep-RCU Splat</a></li>
<li class="toctree-l1"><a class="reference internal" href="rcubarrier.html">RCU and Unloadable Modules</a><ul>
<li class="toctree-l2"><a class="reference internal" href="rcubarrier.html#unloading-modules-that-use-call-rcu">Unloading Modules That Use call_rcu()</a></li>
<li class="toctree-l2"><a class="reference internal" href="rcubarrier.html#id1">rcu_barrier()</a></li>
<li class="toctree-l2"><a class="reference internal" href="rcubarrier.html#implementing-rcu-barrier">Implementing rcu_barrier()</a></li>
<li class="toctree-l2"><a class="reference internal" href="rcubarrier.html#rcu-barrier-summary">rcu_barrier() Summary</a></li>
<li class="toctree-l2"><a class="reference internal" href="rcubarrier.html#answers-to-quick-quizzes">Answers to Quick Quizzes</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="rcu_dereference.html">PROPER CARE AND FEEDING OF RETURN VALUES FROM rcu_dereference()</a><ul>
<li class="toctree-l2"><a class="reference internal" href="rcu_dereference.html#example-of-amplified-rcu-usage-bug">EXAMPLE OF AMPLIFIED RCU-USAGE BUG</a></li>
<li class="toctree-l2"><a class="reference internal" href="rcu_dereference.html#example-where-the-compiler-knows-too-much">EXAMPLE WHERE THE COMPILER KNOWS TOO MUCH</a></li>
<li class="toctree-l2"><a class="reference internal" href="rcu_dereference.html#which-member-of-the-rcu-dereference-family-should-you-use">WHICH MEMBER OF THE rcu_dereference() FAMILY SHOULD YOU USE?</a></li>
<li class="toctree-l2"><a class="reference internal" href="rcu_dereference.html#sparse-checking-of-rcu-protected-pointers">SPARSE CHECKING OF RCU-PROTECTED POINTERS</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="whatisRCU.html">What is RCU? -- “Read, Copy, Update”</a><ul>
<li class="toctree-l2"><a class="reference internal" href="whatisRCU.html#rcu-overview">1. RCU OVERVIEW</a></li>
<li class="toctree-l2"><a class="reference internal" href="whatisRCU.html#what-is-rcu-s-core-api">2. WHAT IS RCU’S CORE API?</a></li>
<li class="toctree-l2"><a class="reference internal" href="whatisRCU.html#what-are-some-example-uses-of-core-rcu-api">3. WHAT ARE SOME EXAMPLE USES OF CORE RCU API?</a></li>
<li class="toctree-l2"><a class="reference internal" href="whatisRCU.html#what-if-my-updating-thread-cannot-block">4. WHAT IF MY UPDATING THREAD CANNOT BLOCK?</a></li>
<li class="toctree-l2"><a class="reference internal" href="whatisRCU.html#what-are-some-simple-implementations-of-rcu">5. WHAT ARE SOME SIMPLE IMPLEMENTATIONS OF RCU?</a></li>
<li class="toctree-l2"><a class="reference internal" href="whatisRCU.html#analogy-with-reader-writer-locking">6. ANALOGY WITH READER-WRITER LOCKING</a></li>
<li class="toctree-l2"><a class="reference internal" href="whatisRCU.html#analogy-with-reference-counting">7. ANALOGY WITH REFERENCE COUNTING</a></li>
<li class="toctree-l2"><a class="reference internal" href="whatisRCU.html#full-list-of-rcu-apis">8. FULL LIST OF RCU APIs</a></li>
<li class="toctree-l2"><a class="reference internal" href="whatisRCU.html#answers-to-quick-quizzes">9. ANSWERS TO QUICK QUIZZES</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="rcu.html">RCU Concepts</a><ul>
<li class="toctree-l2"><a class="reference internal" href="rcu.html#frequently-asked-questions">Frequently Asked Questions</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="rculist_nulls.html">Using RCU hlist_nulls to protect list and objects</a><ul>
<li class="toctree-l2"><a class="reference internal" href="rculist_nulls.html#using-nulls">Using ‘nulls’</a></li>
<li class="toctree-l2"><a class="reference internal" href="rculist_nulls.html#avoiding-extra-smp-rmb">Avoiding extra smp_rmb()</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="rcuref.html">Reference-count design for elements of lists/arrays protected by RCU</a></li>
<li class="toctree-l1"><a class="reference internal" href="torture.html">RCU Torture Test Operation</a><ul>
<li class="toctree-l2"><a class="reference internal" href="torture.html#config-rcu-torture-test">CONFIG_RCU_TORTURE_TEST</a></li>
<li class="toctree-l2"><a class="reference internal" href="torture.html#output">Output</a></li>
<li class="toctree-l2"><a class="reference internal" href="torture.html#usage-on-specific-kernel-builds">Usage on Specific Kernel Builds</a></li>
<li class="toctree-l2"><a class="reference internal" href="torture.html#usage-on-mainline-kernels">Usage on Mainline Kernels</a></li>
<li class="toctree-l2"><a class="reference internal" href="torture.html#repeated-runs">Repeated Runs</a></li>
<li class="toctree-l2"><a class="reference internal" href="torture.html#distributed-runs">Distributed Runs</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="stallwarn.html">Using RCU’s CPU Stall Detector</a><ul>
<li class="toctree-l2"><a class="reference internal" href="stallwarn.html#what-causes-rcu-cpu-stall-warnings">What Causes RCU CPU Stall Warnings?</a></li>
<li class="toctree-l2"><a class="reference internal" href="stallwarn.html#fine-tuning-the-rcu-cpu-stall-detector">Fine-Tuning the RCU CPU Stall Detector</a></li>
<li class="toctree-l2"><a class="reference internal" href="stallwarn.html#interpreting-rcu-s-cpu-stall-detector-splats">Interpreting RCU’s CPU Stall-Detector “Splats”</a></li>
<li class="toctree-l2"><a class="reference internal" href="stallwarn.html#multiple-warnings-from-one-stall">Multiple Warnings From One Stall</a></li>
<li class="toctree-l2"><a class="reference internal" href="stallwarn.html#stall-warnings-for-expedited-grace-periods">Stall Warnings for Expedited Grace Periods</a></li>
<li class="toctree-l2"><a class="reference internal" href="stallwarn.html#rcu-cpu-stall-cputime">RCU_CPU_STALL_CPUTIME</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="listRCU.html">Using RCU to Protect Read-Mostly Linked Lists</a><ul>
<li class="toctree-l2"><a class="reference internal" href="listRCU.html#example-1-read-mostly-list-deferred-destruction">Example 1: Read-mostly list: Deferred Destruction</a></li>
<li class="toctree-l2"><a class="reference internal" href="listRCU.html#example-2-read-side-action-taken-outside-of-lock-no-in-place-updates">Example 2: Read-Side Action Taken Outside of Lock: No In-Place Updates</a></li>
<li class="toctree-l2"><a class="reference internal" href="listRCU.html#example-3-handling-in-place-updates">Example 3: Handling In-Place Updates</a></li>
<li class="toctree-l2"><a class="reference internal" href="listRCU.html#example-4-eliminating-stale-data">Example 4: Eliminating Stale Data</a></li>
<li class="toctree-l2"><a class="reference internal" href="listRCU.html#example-5-skipping-stale-objects">Example 5: Skipping Stale Objects</a></li>
<li class="toctree-l2"><a class="reference internal" href="listRCU.html#summary">Summary</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="NMI-RCU.html">Using RCU to Protect Dynamic NMI Handlers</a></li>
<li class="toctree-l1"><a class="reference internal" href="UP.html">RCU on Uniprocessor Systems</a><ul>
<li class="toctree-l2"><a class="reference internal" href="UP.html#example-1-softirq-suicide">Example 1: softirq Suicide</a></li>
<li class="toctree-l2"><a class="reference internal" href="UP.html#example-2-function-call-fatality">Example 2: Function-Call Fatality</a></li>
<li class="toctree-l2"><a class="reference internal" href="UP.html#example-3-death-by-deadlock">Example 3: Death by Deadlock</a></li>
<li class="toctree-l2"><a class="reference internal" href="UP.html#summary">Summary</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="Design/Memory-Ordering/Tree-RCU-Memory-Ordering.html">A Tour Through TREE_RCU’s Grace-Period Memory Ordering</a><ul>
<li class="toctree-l2"><a class="reference internal" href="Design/Memory-Ordering/Tree-RCU-Memory-Ordering.html#introduction">Introduction</a></li>
<li class="toctree-l2"><a class="reference internal" href="Design/Memory-Ordering/Tree-RCU-Memory-Ordering.html#what-is-tree-rcu-s-grace-period-memory-ordering-guarantee">What Is Tree RCU’s Grace Period Memory Ordering Guarantee?</a></li>
<li class="toctree-l2"><a class="reference internal" href="Design/Memory-Ordering/Tree-RCU-Memory-Ordering.html#tree-rcu-grace-period-memory-ordering-building-blocks">Tree RCU Grace Period Memory Ordering Building Blocks</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="Design/Expedited-Grace-Periods/Expedited-Grace-Periods.html">A Tour Through TREE_RCU’s Expedited Grace Periods</a><ul>
<li class="toctree-l2"><a class="reference internal" href="Design/Expedited-Grace-Periods/Expedited-Grace-Periods.html#introduction">Introduction</a></li>
<li class="toctree-l2"><a class="reference internal" href="Design/Expedited-Grace-Periods/Expedited-Grace-Periods.html#expedited-grace-period-design">Expedited Grace Period Design</a></li>
<li class="toctree-l2"><a class="reference internal" href="Design/Expedited-Grace-Periods/Expedited-Grace-Periods.html#rcu-preempt-expedited-grace-periods">RCU-preempt Expedited Grace Periods</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="Design/Requirements/Requirements.html">A Tour Through RCU’s Requirements</a><ul>
<li class="toctree-l2"><a class="reference internal" href="Design/Requirements/Requirements.html#introduction">Introduction</a></li>
<li class="toctree-l2"><a class="reference internal" href="Design/Requirements/Requirements.html#fundamental-requirements">Fundamental Requirements</a></li>
<li class="toctree-l2"><a class="reference internal" href="Design/Requirements/Requirements.html#fundamental-non-requirements">Fundamental Non-Requirements</a></li>
<li class="toctree-l2"><a class="reference internal" href="Design/Requirements/Requirements.html#parallelism-facts-of-life">Parallelism Facts of Life</a></li>
<li class="toctree-l2"><a class="reference internal" href="Design/Requirements/Requirements.html#quality-of-implementation-requirements">Quality-of-Implementation Requirements</a></li>
<li class="toctree-l2"><a class="reference internal" href="Design/Requirements/Requirements.html#software-engineering-requirements">Software-Engineering Requirements</a></li>
<li class="toctree-l2"><a class="reference internal" href="Design/Requirements/Requirements.html#linux-kernel-complications">Linux Kernel Complications</a></li>
<li class="toctree-l2"><a class="reference internal" href="Design/Requirements/Requirements.html#other-rcu-flavors">Other RCU Flavors</a></li>
<li class="toctree-l2"><a class="reference internal" href="Design/Requirements/Requirements.html#possible-future-changes">Possible Future Changes</a></li>
<li class="toctree-l2"><a class="reference internal" href="Design/Requirements/Requirements.html#summary">Summary</a></li>
<li class="toctree-l2"><a class="reference internal" href="Design/Requirements/Requirements.html#acknowledgments">Acknowledgments</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="Design/Data-Structures/Data-Structures.html">A Tour Through TREE_RCU’s Data Structures [LWN.net]</a><ul>
<li class="toctree-l2"><a class="reference internal" href="Design/Data-Structures/Data-Structures.html#introduction">Introduction</a></li>
<li class="toctree-l2"><a class="reference internal" href="Design/Data-Structures/Data-Structures.html#data-structure-relationships">Data-Structure Relationships</a></li>
</ul>
</li>
</ul>
</div>
</section>
</div>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
©The kernel development community.
|
Powered by <a href="https://www.sphinx-doc.org/">Sphinx 8.1.3</a>
& <a href="https://alabaster.readthedocs.io">Alabaster 0.7.16</a>
|
<a href="../_sources/RCU/index.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| Design | Folder | 0755 |
|
|
| NMI-RCU.html | File | 18.35 KB | 0644 |
|
| UP.html | File | 22.53 KB | 0644 |
|
| checklist.html | File | 69.43 KB | 0644 |
|
| index.html | File | 21.8 KB | 0644 |
|
| listRCU.html | File | 42.33 KB | 0644 |
|
| lockdep-splat.html | File | 17.77 KB | 0644 |
|
| lockdep.html | File | 18.35 KB | 0644 |
|
| rcu.html | File | 15 KB | 0644 |
|
| rcu_dereference.html | File | 40.11 KB | 0644 |
|
| rcubarrier.html | File | 38.77 KB | 0644 |
|
| rculist_nulls.html | File | 19.16 KB | 0644 |
|
| rcuref.html | File | 21.17 KB | 0644 |
|
| stallwarn.html | File | 37.94 KB | 0644 |
|
| torture.html | File | 31.69 KB | 0644 |
|
| whatisRCU.html | File | 104.22 KB | 0644 |
|