Commit Graph

1115 Commits

Author SHA1 Message Date
Justin Cormack
4f5db70e9c fix typo
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-25 12:35:45 +01:00
Justin Cormack
efb5e03004 Merge pull request #343 from justincormack/etchosts
add etc/hosts database key, as requested at Docker London
2016-07-22 14:41:15 +01:00
Justin Cormack
93b72d5cfe add etc/hosts database key, as requested at Docker London
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-22 14:27:20 +01:00
David Sheets
119740435d Merge pull request #340 from dsheets/transfused-notify-channel
transfused notify channel
2016-07-22 13:58:28 +01:00
Justin Cormack
054c384230 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
78cca476fb transfused: copyedit a couple error messages
Signed-off-by: David Sheets <dsheets@docker.com>
2016-07-22 13:40:52 +01:00
David Sheets
ddd0fcc603 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
bcd922216a Add VMWare kernel features
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-22 12:54:20 +01:00
Justin Cormack
8ce6422fe4 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
43dbfe0ce7 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
be68e3330a 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
45edded90e 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
85726ee406 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
9ada58e5aa Merge pull request #331 from justincormack/fixdiag
fix typo
2016-07-21 17:35:37 +01:00
Justin Cormack
c5b2246168 fix typo
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-21 17:35:11 +01:00
Justin Cormack
9117486b3f 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
c97a22116c 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
3284a8ec44 Merge pull request #328 from justincormack/CLFAGS
typo
2016-07-21 15:38:32 +01:00
Natanael Copa
e8174e34b5 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
7cebdba16b typo
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-21 13:41:56 +01:00
Justin Cormack
68435c64ba 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
adcfa94158 use openrc for shutdown
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-21 12:57:05 +01:00
Rolf Neugebauer
2e54a4d295 Merge pull request #309 from justincormack/tapvsockvmbus
Use mobyplatform not vmbus for tap-vsock
2016-07-21 10:34:57 +01:00
Justin Cormack
23de0c630a 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
6499edf953 Merge pull request #321 from nathanleclaire/rm_walinuxagent
Remove Windows Azure Linux agent Dockerfile
2016-07-21 09:53:53 +01:00
Justin Cormack
18a8b4faaa 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
fb6aeacf7c Merge pull request #312 from justincormack/vsuddvmbus
Use platform name not vmbus
2016-07-21 09:52:48 +01:00
Nathan LeClaire
5f13b6aac7 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
1b00703f0f 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
48e4100e2f Merge pull request #306 from justincormack/chronyconfig
Fix up chronyd support for editions
2016-07-21 00:45:27 +01:00
Nathan LeClaire
cf0fc1f75b Remove unused file
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2016-07-20 13:48:52 -07:00
Nathan LeClaire
a9ced0a205 Fix error in diagnostic server init code
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2016-07-20 13:48:21 -07:00
David Sheets
f61be6860b finish removal of llmnrd from #311
Signed-off-by: David Sheets <dsheets@docker.com>
2016-07-20 17:03:51 +01:00
Justin Cormack
80cab7bb26 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
97ea6ed818 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
b53d30b9ac 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
198de9219c Merge pull request #311 from justincormack/nollmnr
Remove llmnrd
2016-07-20 16:14:14 +01:00
David Sheets
a2269275b6 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
David Sheets
cae79c7ce3 kernel: make sure to gitignore vmlinux
Signed-off-by: David Sheets <dsheets@docker.com>
2016-07-20 15:40:54 +01:00
David Sheets
cdac4fde34 kernel: add vmlinux target to make kernel debugging easier
With this patch, it is easy to get an unstripped kernel object to use with
gdb.

Signed-off-by: David Sheets <dsheets@docker.com>
2016-07-20 15:37:04 +01:00
Justin Cormack
345be9e5d4 Use platform to decide whether to run hv tools
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-20 14:48:16 +01:00
Justin Cormack
7f1595d11b Use platform name not vmbus
See #301

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-20 14:44:43 +01:00
Justin Cormack
bbf4def475 Remove llmnrd
Not really required as ports exposed on localhost. If users
want to connext to VM ports they can use the IP address, as
this is discouraged. llmnr names are very slow to access,
so not nice to use.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-20 14:32:14 +01:00
Justin Cormack
b4bba1fd65 Merge pull request #310 from justincormack/posixlyequal
Posixly correct = not ==
2016-07-20 14:20:52 +01:00
Justin Cormack
3c8c48f459 Posixly correct = not ==
See #161 #170 should be covered...

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-20 12:33:01 +01:00
Justin Cormack
a880bcf136 Use mobyplatform not vmbus for tap-vsock
Plus cleanup for less indentation. No functional change.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-20 12:30:59 +01:00
Rolf Neugebauer
13d92bd082 Merge pull request #308 from justincormack/transfusedvmbus
Only run transfused on mac platform
2016-07-20 12:21:18 +01:00
Justin Cormack
db7bc9cb8c Only run transfused on mac platform
See #301

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-20 12:11:39 +01:00
Justin Cormack
3601348fef use platform not vmbus consistently
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-20 12:07:40 +01:00
Justin Cormack
4202e575c0 Fix up chronyd support for editions
See #305 #301

This sets AWS to use the amazon ntp pool, windows to do nothing,
mac uses ntp it gets from DNS. Azure currently uses default pool,
this probably needs fixing.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-20 12:02:59 +01:00