diff for duplicates of <83e4baf9-6ece-6e81-1864-689934b7733a@lge.com>
diff --git a/a/1.txt b/N1/1.txt
index 1e0e87b..e21c3f2 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -25,8 +25,8 @@ On 1/17/2018 11:19 AM, Byungchul Park wrote:
>>
>> In printk() when it tries to write to the consoles, we have:
>>
->> if (console_trylock())
->> console_unlock();
+>> A A A A if (console_trylock())
+>> A A A A A A A console_unlock();
>>
>> Now I added an else, which will check if there is an active owner, and
>> no current waiter. If that is the case, then console_waiter is set, and
@@ -60,19 +60,19 @@ On 1/17/2018 11:19 AM, Byungchul Park wrote:
>> We could look at it from this side. The possible deadlock would
>> look like:
>>
->> CPU0 CPU1
+>> CPU0A A A A A A A A A A A A A A A A A A A A A A A A A A A CPU1
>>
>> console_unlock()
>>
->> console_owner = current;
+>> A A console_owner = current;
>>
->> spin_lockA()
->> printk()
->> spin = true;
->> while (...)
+>> A A A A A A A A A A A A A A A spin_lockA()
+>> A A A A A A A A A A A A A A A A A printk()
+>> A A A A A A A A A A A A A A A A A A A spin = true;
+>> A A A A A A A A A A A A A A A A A A A while (...)
>>
->> call_console_drivers()
->> spin_lockA()
+>> A A A A call_console_drivers()
+>> A A A A A A spin_lockA()
>>
>> This would be a deadlock. CPU0 would wait for the lock A.
>> While CPU1 would own the lockA and would wait for CPU0
@@ -85,10 +85,10 @@ On 1/17/2018 11:19 AM, Byungchul Park wrote:
>> CPU0
>>
>> spin_lockA()
->> printk()
->> console_unlock()
->> call_console_drivers()
->> spin_lockA()
+>> A A printk()
+>> A A A A console_unlock()
+>> A A A A A A call_console_drivers()
+>> A A A A spin_lockA()
>>
>> By other words, this deadlock was there even before. Such
>> deadlocks are prevented by using printk_deferred() in
@@ -106,4 +106,10 @@ Of course, it's not an important thing but trivial one though.
--
Thanks,
-Byungchul
\ No newline at end of file
+Byungchul
+
+--
+To unsubscribe, send a message with 'unsubscribe linux-mm' in
+the body to majordomo@kvack.org. For more info on Linux MM,
+see: http://www.linux-mm.org/ .
+Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
\ No newline at end of file
diff --git a/a/content_digest b/N1/content_digest
index 8e3884d..914bacf 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -76,8 +76,8 @@
">>\n",
">> In printk() when it tries to write to the consoles, we have:\n",
">>\n",
- ">> \302\240\302\240\302\240\302\240if (console_trylock())\n",
- ">> \302\240\302\240\302\240\302\240\302\240\302\240\302\240 console_unlock();\n",
+ ">> A A A A if (console_trylock())\n",
+ ">> A A A A A A A console_unlock();\n",
">>\n",
">> Now I added an else, which will check if there is an active owner, and\n",
">> no current waiter. If that is the case, then console_waiter is set, and\n",
@@ -111,19 +111,19 @@
">> We could look at it from this side. The possible deadlock would\n",
">> look like:\n",
">>\n",
- ">> CPU0\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 CPU1\n",
+ ">> CPU0A A A A A A A A A A A A A A A A A A A A A A A A A A A CPU1\n",
">>\n",
">> console_unlock()\n",
">>\n",
- ">> \302\240\302\240 console_owner = current;\n",
+ ">> A A console_owner = current;\n",
">>\n",
- ">> \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 spin_lockA()\n",
- ">> \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 printk()\n",
- ">> \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 spin = true;\n",
- ">> \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 while (...)\n",
+ ">> A A A A A A A A A A A A A A A spin_lockA()\n",
+ ">> A A A A A A A A A A A A A A A A A printk()\n",
+ ">> A A A A A A A A A A A A A A A A A A A spin = true;\n",
+ ">> A A A A A A A A A A A A A A A A A A A while (...)\n",
">>\n",
- ">> \302\240\302\240\302\240\302\240 call_console_drivers()\n",
- ">> \302\240\302\240\302\240\302\240\302\240\302\240 spin_lockA()\n",
+ ">> A A A A call_console_drivers()\n",
+ ">> A A A A A A spin_lockA()\n",
">>\n",
">> This would be a deadlock. CPU0 would wait for the lock A.\n",
">> While CPU1 would own the lockA and would wait for CPU0\n",
@@ -136,10 +136,10 @@
">> CPU0\n",
">>\n",
">> spin_lockA()\n",
- ">> \302\240\302\240 printk()\n",
- ">> \302\240\302\240\302\240\302\240 console_unlock()\n",
- ">> \302\240\302\240\302\240\302\240\302\240\302\240 call_console_drivers()\n",
- ">> \302\240\302\240\302\240\302\240spin_lockA()\n",
+ ">> A A printk()\n",
+ ">> A A A A console_unlock()\n",
+ ">> A A A A A A call_console_drivers()\n",
+ ">> A A A A spin_lockA()\n",
">>\n",
">> By other words, this deadlock was there even before. Such\n",
">> deadlocks are prevented by using printk_deferred() in\n",
@@ -157,7 +157,13 @@
"\n",
"-- \n",
"Thanks,\n",
- "Byungchul"
+ "Byungchul\n",
+ "\n",
+ "--\n",
+ "To unsubscribe, send a message with 'unsubscribe linux-mm' in\n",
+ "the body to majordomo\@kvack.org. For more info on Linux MM,\n",
+ "see: http://www.linux-mm.org/ .\n",
+ "Don't email: <a href=mailto:\"dont\@kvack.org\"> email\@kvack.org </a>"
]
-2134716049dba9739aa67dc422b88a01ae29e34a802049672b5c18fbcad5db53
+3e139cae2b0a8deb4f8368db646d2eb1866596008925d800e851002d2b9e1775
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.