Commit Graph

986 Commits

Author SHA1 Message Date
David Sheets
5567f50c1e Merge pull request #340 from dsheets/transfused-notify-channel
transfused notify channel
2016-07-22 13:58:28 +01:00
Justin Cormack
e0c08ab7b0 Merge pull request #341 from justincormack/vmwaredocs
Document that VMWare Fusion is working
2016-07-22 13:55:31 +01:00
Justin Cormack
e6e974b379 Document that VMWare Fusion is working
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-22 13:54:42 +01:00
Justin Cormack
ca5dbde634 Merge pull request #339 from justincormack/vmwaredrive
Support VMWare emulation
2016-07-22 13:43:27 +01:00
Justin Cormack
993237bdcf Add default SCSI device used by VMWare Fusion
As this is the default emulation, nicer to have it work.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-22 13:41:45 +01:00
David Sheets
b25b891d3b transfused: copyedit a couple error messages
Signed-off-by: David Sheets <dsheets@docker.com>
2016-07-22 13:40:52 +01:00
David Sheets
821b329f7b transfused: add separate FUSE notify channel to avoid deadlock
This adds a new notify channel to the transfuse protocol. It is not
optional yet but could be made to be optional. A notify protocol and
notify channel are required because writing FUSE response messages to
the FUSE device has different semantics from writing asynchronous
notifications. In particular, response message writes only error on
malformed messages, do not take locks, and do not block. In contrast,
asynchronous notifications can error under normal conditions
(e.g. invalidating a cache entry that doesn't exist), can take locks
during the write call, and can block.

If responses and notifications occur in the same thread, the file system
can become deadlocked when syscalls lock resources waiting for a
response and a notification is written that blocks attempting to acquire
those same locks. The response that would unlock the contended lock
could be queued behind the notification write but the notification write
can't unblock until the response is written in the future. This patch
enables file systems to avoid that fate by offering a secondary channel
on which to send notifications.

Signed-off-by: David Sheets <dsheets@docker.com>
2016-07-22 13:35:57 +01:00
Justin Cormack
79076c4fbd Add VMWare kernel features
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-22 12:54:20 +01:00
Justin Cormack
cfca271950 Merge pull request #337 from justincormack/vmwareconsole
use correct tty for bios, fixes lack of login on VMWare Fusion
2016-07-22 11:41:41 +01:00
Justin Cormack
3199b72769 use correct tty for bios, fixes lack of login on VMWare Fusion
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-22 11:39:41 +01:00
Justin Cormack
96041c07a4 Merge pull request #335 from justincormack/xendoc
Expand platform docs with Xen PV example
2016-07-22 11:19:24 +01:00
Justin Cormack
6820ae62a3 Expand platform docs with Xen PV example
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-22 11:19:02 +01:00
Justin Cormack
2b5b709600 Merge pull request #332 from justincormack/quietdb
only try to mount db for desktop editions
2016-07-22 10:53:40 +01:00
Justin Cormack
dcb1a678cc Merge pull request #324 from ncopa/alpine-gummiboot
Use upstream gummiboot binary and build EFI with alpine
2016-07-22 10:52:38 +01:00
Justin Cormack
19f04c7c6d Merge pull request #333 from justincormack/diagnosticsfix
allow for args for servers in diagnostics
2016-07-21 18:39:37 +01:00
Justin Cormack
32aa36439a allow for args for servers in diagnostics
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-21 18:38:38 +01:00
Justin Cormack
3ada321926 only try to mount db for desktop editions
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-21 18:37:34 +01:00
Justin Cormack
4370d9bd90 Merge pull request #331 from justincormack/fixdiag
fix typo
2016-07-21 17:35:37 +01:00
Justin Cormack
6a6f924283 fix typo
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-21 17:35:11 +01:00
Justin Cormack
42aa840fbc Merge pull request #330 from justincormack/unknownplatform
default to unknown platform if not specified in command line
2016-07-21 17:26:59 +01:00
Justin Cormack
c121983dd5 default to unknown platform if not specified in command line
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-21 17:25:48 +01:00
Justin Cormack
abf4ba2288 Merge pull request #329 from justincormack/diskdetect
Tweak disk detection diagnostics to match what is going on better
2016-07-21 16:15:04 +01:00
Justin Cormack
7682ed2503 Tweak disk detection diagnostics to match what is going on better
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-21 15:48:24 +01:00
Justin Cormack
c209ee554b Merge pull request #328 from justincormack/CLFAGS
typo
2016-07-21 15:38:32 +01:00
Justin Cormack
37f1ede6ee Merge pull request #327 from justincormack/armbuild
Clean up sources that arm edition will not need
2016-07-21 13:47:23 +01:00
Natanael Copa
01ba161477 Use upstream gummiboot binary and build EFI with alpine
Alpine 3.4 got gummiboot backported so we use that to build the EFI.

Signed-off-by: Natanael Copa <natanael.copa@docker.com>
2016-07-21 14:42:05 +02:00
Justin Cormack
ebca732d3d typo
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-21 13:41:56 +01:00
Justin Cormack
20a85c16f1 Clean up sources that arm edition will not need
As arm will not be a desktop edition, we will not need to
try to fix these. We do need `diagnostics` though, the
vsock code however is not cross building, needs to be fixed
or made conditional.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-21 13:39:03 +01:00
Justin Cormack
d3d355ece5 Merge pull request #326 from justincormack/openrcshutdown
use openrc for shutdown
2016-07-21 13:32:47 +01:00
Justin Cormack
55d3a0dd42 use openrc for shutdown
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-21 12:57:05 +01:00
Rolf Neugebauer
423b3c2765 Merge pull request #309 from justincormack/tapvsockvmbus
Use mobyplatform not vmbus for tap-vsock
2016-07-21 10:34:57 +01:00
Justin Cormack
4ccb36f900 Merge pull request #319 from nathanleclaire/posix_shell
Remove bash-isms in cloud build scripts
2016-07-21 09:54:46 +01:00
Justin Cormack
13b2d94b75 Merge pull request #321 from nathanleclaire/rm_walinuxagent
Remove Windows Azure Linux agent Dockerfile
2016-07-21 09:53:53 +01:00
Justin Cormack
6d3057c2cb Merge pull request #313 from justincormack/hvtools-vmbus
Use platform to decide whether to run hv tools
2016-07-21 09:53:18 +01:00
Justin Cormack
27f6130cb8 Merge pull request #312 from justincormack/vsuddvmbus
Use platform name not vmbus
2016-07-21 09:52:48 +01:00
Nathan LeClaire
7eef629176 Remove Windows Azure Linux agent Dockerfile
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2016-07-20 18:54:53 -07:00
Nathan LeClaire
4b8ea4d403 Remove bash-isms in cloud build scripts
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2016-07-20 17:35:40 -07:00
Justin Cormack
663b6848a0 Merge pull request #306 from justincormack/chronyconfig
Fix up chronyd support for editions
2016-07-21 00:45:27 +01:00
Justin Cormack
daf0b870b6 Merge pull request #320 from nathanleclaire/diagnostic_oops
Diagnostic oops
2016-07-21 00:43:56 +01:00
Nathan LeClaire
afb9b91b60 Remove unused file
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2016-07-20 13:48:52 -07:00
Nathan LeClaire
9ecf003a33 Fix error in diagnostic server init code
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2016-07-20 13:48:21 -07:00
Justin Cormack
59dd4f2f1d Merge pull request #318 from dsheets/llmnrd-finish-removal
finish removal of llmnrd from #311
2016-07-20 17:12:25 +01:00
David Sheets
c3793ff745 finish removal of llmnrd from #311
Signed-off-by: David Sheets <dsheets@docker.com>
2016-07-20 17:03:51 +01:00
Justin Cormack
3dbf3280d5 Merge pull request #317 from dsheets/kernel-af_vsock-lockdep
kernel: backport af_vsock lockdep cleanliness patch from v4.7-rc6
2016-07-20 16:27:33 +01:00
David Sheets
ed0630dcf6 kernel: backport af_vsock lockdep cleanliness patch from v4.7-rc6
From torvalds/linux@4192f672fa which was
part of torvalds/linux@v4.7-rc6. The change is purely to ensure that vsock
is lockdep-clean.

Signed-off-by: David Sheets <dsheets@docker.com>
2016-07-20 16:22:21 +01:00
Justin Cormack
aa829b811b Merge pull request #316 from dsheets/kernel-aufs-lockdep
kernel: apply the AUFS patch to integrate with lockdep
2016-07-20 16:18:42 +01:00
Rolf Neugebauer
d2e2a5308d Merge pull request #311 from justincormack/nollmnr
Remove llmnrd
2016-07-20 16:14:14 +01:00
David Sheets
473765c04b kernel: apply the AUFS patch to integrate with lockdep
AUFS introduces new lockdep relations which are beyond the maximum variants
that lockdep ships with. Without this patch, AUFS triggers lockdep BUG sanity
checks and disables lockdep for the rest of the system.

The present value of the patch is:

```diff
aufs4.4 lockdep patch

diff --git a/include/linux/lockdep.h b/include/linux/lockdep.h
index c57e424..4153563 100644
--- a/include/linux/lockdep.h
+++ b/include/linux/lockdep.h
@@ -29,7 +29,7 @@ extern int lock_stat;
  */
 #define XXX_LOCK_USAGE_STATES		(1+3*4)

-#define MAX_LOCKDEP_SUBCLASSES		8UL
+#define MAX_LOCKDEP_SUBCLASSES		(8UL + 4)

 /*
  * NR_LOCKDEP_CACHING_CLASSES ... Number of classes
@@ -203,7 +203,7 @@ struct lock_chain {
 	u64				chain_key;
 };

-#define MAX_LOCKDEP_KEYS_BITS		13
+#define MAX_LOCKDEP_KEYS_BITS		(13 + 3)
 /*
  * Subtract one because we offset hlock->class_idx by 1 in order
  * to make 0 mean no class. This avoids overflowing the class_idx
diff --git a/kernel/locking/lockdep_internals.h b/kernel/locking/lockdep_internals.h
index 51c4b24..fba7557 100644
--- a/kernel/locking/lockdep_internals.h
+++ b/kernel/locking/lockdep_internals.h
@@ -54,9 +54,9 @@ enum {
  * table (if it's not there yet), and we check it for lock order
  * conflicts and deadlocks.
  */
-#define MAX_LOCKDEP_ENTRIES	32768UL
+#define MAX_LOCKDEP_ENTRIES	(32768UL << 5)

-#define MAX_LOCKDEP_CHAINS_BITS	16
+#define MAX_LOCKDEP_CHAINS_BITS	(16 + 5)
 #define MAX_LOCKDEP_CHAINS	(1UL << MAX_LOCKDEP_CHAINS_BITS)

 #define MAX_LOCKDEP_CHAIN_HLOCKS (MAX_LOCKDEP_CHAINS*5)
@@ -65,7 +65,7 @@ enum {
  * Stack-trace: tightly packed array of stack backtrace
  * addresses. Protected by the hash_lock.
  */
-#define MAX_STACK_TRACE_ENTRIES	524288UL
+#define MAX_STACK_TRACE_ENTRIES	(524288UL << 5)

 extern struct list_head all_lock_classes;
 extern struct lock_chain lock_chains[];
```

Signed-off-by: David Sheets <dsheets@docker.com>
2016-07-20 16:08:00 +01:00
Justin Cormack
4d6162f31e Merge pull request #315 from dsheets/kernel-vmlinux
kernel: make sure to gitignore vmlinux
2016-07-20 15:42:39 +01:00
David Sheets
1b43354bcb kernel: make sure to gitignore vmlinux
Signed-off-by: David Sheets <dsheets@docker.com>
2016-07-20 15:40:54 +01:00