Commit Graph

107 Commits

Author SHA1 Message Date
Justin Cormack
b392bf0a2e Simplify kernel output and main Dockerfile
Signed-off-by: Justin Cormack <justin@specialbusservice.com>
2016-09-12 16:02:07 +01:00
Justin Cormack
30275af07e Update kernel and aufs
- kernel 4.4.20
- aufs 20160905

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-09-07 22:51:51 +01:00
Justin Cormack
4b4f133620 remove arm dtb now we no longer build arm kernel
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-08-31 16:51:03 +01:00
Justin Cormack
07bf4888c1 quieter kernel build
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-08-31 15:53:16 +01:00
Justin Cormack
69f290d28f Remove support for arm kernel build
See #449. Plan is to use upstream Alpine kernel for Arm, as
does not need vsock, hvsock or aufs.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-08-31 14:23:40 +01:00
Justin Cormack
e643a4b758 Unlimit max CPU cores in config
See https://github.com/docker/for-win/issues/59

Even on desktop we have users with more than 8 cores!

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-08-25 09:32:23 +01:00
Justin Cormack
3628e60d54 Update build containers to Ubuntu 16.10
Should update to Alpine in future.

Signed-off-by: Justin Cormack <justin@specialbusservice.com>
2016-08-23 19:53:11 +01:00
Justin Cormack
32acad99a7 Update kernel and aufs
- Linux 4.4.19
- AUFS 20160822

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-08-22 11:05:07 +01:00
David Sheets
296d1e10c7 kernel: apply debug configuration to all kernels
Signed-off-by: David Sheets <dsheets@docker.com>
2016-08-10 17:08:07 +01:00
David Sheets
661c19649a kernel: add a Makefile DEBUG variable and a kernel_config for debugging
Signed-off-by: David Sheets <dsheets@docker.com>
2016-08-10 17:07:48 +01:00
Justin Cormack
55e15928ff Update kernel and aufs
- Linux 4.4.17
- AUFS 20160808

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-08-10 15:03:36 +01:00
Justin Cormack
e30cb91bce Update kernel to 4.4.16
This contains a lot of fixes for overlay.

Fix #374

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-29 16:21:24 +01:00
Natanael Copa
66ba586cac Move built kernel to arch specific subdir
We want be able to build kernels for different archs without that they
clash with each other so we but the generated files into an $arch subdir.

Signed-off-by: Natanael Copa <natanael.copa@docker.com>
2016-07-25 17:18:02 +02:00
Justin Cormack
4c68383d56 Remove some VMWare devices
In particular vsock causes issues with virtio vsock

We are not supporting VMWare platform at present so not relevant..

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-25 14:23:24 +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
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
ebca732d3d typo
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-21 13:41:56 +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
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
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
David Sheets
25f3d06b7b 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
Natanael Copa
907d1f8c0c improve kernel build makefile
- create an empty dummy file to indicate that docker image is built
- reuse same make rule to extract the different files from docker image
- make sure that we remove empty files on failure

This makes build more robust and improves parallelism.

Signed-off-by: Natanael Copa <natanael.copa@docker.com>
2016-07-13 18:03:16 +02:00
Rolf Neugebauer
9d5797cdd3 kernel: Update to 4.4.15
patches from: https://github.com/rneugeba/linux-stable/tree/v4.4.15-moby

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2016-07-12 10:36:57 +01:00
David Sheets
bd33169d49 linux: allow kernel module unloading
The ability to unload kernel modules helps with rapid development of kernel
modules or Moby-integrated functionality. It has no negative side effects
as far as I am aware.

Signed-off-by: David Sheets <dsheets@docker.com>
2016-07-11 11:48:46 -07:00
Justin Cormack
94d603971c Merge pull request #255 from justincormack/e1000
add e1000 drivers, allows qemu default setup to find an ethernet, and…
2016-07-08 16:28:24 +01:00
Justin Cormack
c8b5ffcef0 add e1000 drivers, allows qemu default setup to find an ethernet, and used frequently in emulated environments
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-08 16:26:16 +01:00
Rolf Neugebauer
f829fef36b linux: properly update kernel patches to v4.4.14
When we updated from 4.4.10 to 4.4.14 we copied the patches over.
This changeset properly updates the patches so that they apply cleanly.
0039-VSOCK-do-not-disconnect-socket-when-peer-has-shutdow.patch was
removed as it made it into 4.4.14 already.

Compile tested only

For reference the patches were generated from:
https://github.com/rneugeba/linux-stable/tree/v4.4.14-moby

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2016-07-08 16:10:51 +01:00
Justin Cormack
880966311c Updated kernel config
Remove one module, Xen ones not removeable. Make oldconfig.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-04 17:03:10 +01:00
Ian Campbell
7378c6e282 Populate /lib/modules/uname -r
This is less to do with installing modules (which we generally don't expect to
use in Moby) but to populate /lib/modules/`uname -r`/modules.builtin which
turns:

    moby:~# modprobe ip_vs
    modprobe: FATAL: Module ip_vs not found in directory /lib/modules/4.4.14-moby
    moby:~# modprobe nf_nat
    modprobe: FATAL: Module nf_nat not found in directory /lib/modules/4.4.14-moby
    moby:~#

into:

    moby:~# modprobe ip_vs
    moby:~# modprobe nf_nat
    moby:~#

which reduces the amount noise in the logs, e.g. in docker.log:

time="2016-07-04T11:21:58Z" level=warning msg="Running modprobe nf_nat failed with message: `modprobe: WARNING: Module nf_nat not found in directory /lib/modules/4.4.14-moby`, error: exit status 1"

A fair number of these appear in the logs.

This also stops various tools logging about /lib/modules/`uname -r` not
existing (there was one in the boot log until recently I think)

Signed-off-by: Ian Campbell <ian.campbell@docker.com>
2016-07-04 15:44:48 +01:00
Justin Cormack
b39033bd09 update linux to 4.4.14 and update aufs to 20160627
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-06-26 16:16:57 -07:00
Daniel Hiltgen
b06eb1eb77 Add SATA disk support
Increase the number of hypervisors where Moby can run and detect
the disks.  With this change, I'm able to boot under KVM and see
the disk detected, formatted and mounted as expected.
2016-06-17 08:11:46 -07:00
Daniel Hiltgen
56c6c3a0a9 Add support for console on tty1
When running moby under other hypervisors, requiring troubleshooting on
the serial port can be painful.  This change enables console support on
tty1 similar to the way prior boot2docker images worked.
2016-06-16 17:17:34 -07:00
Justin Cormack
ed34c13840 Kernel config for CDROM support (for Azure)
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-06-14 11:30:47 +01:00
Justin Cormack
9c426928ef Add CRIU support
Also enables expert so a bunch of other options showing

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-06-13 16:33:31 +01:00
Justin Cormack
7f99dffed7 update kernel to 4.4.13 and aufs to 20160613
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-06-13 15:06:25 +01:00
Ian Campbell
5165a6c795 Add || true to the docker rmi invocations in the clean target
Linux xargs calls the command with no arguments if it gets no inputs, which
`docker rmi` complains about. It provides -r / --no-run-if-empty to prevent
this but unfortunately this isn't supported on OSX.

Ignore errors from `docker rmi` so that `make clean` will keep going and clean
up later stuff.

Signed-off-by: Ian Campbell <ian.campbell@docker.com>
2016-06-08 13:59:47 +01:00
Madhu Venugopal
9d7835d6c4 Enabling IPVS kernel configs to support built-in load-balancing
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2016-06-06 15:34:30 -07:00
Justin Cormack
9241e0c8df Merge pull request #177 from justincormack/ipvs
add ipvs conntrack and other missing net options
2016-06-06 23:18:19 +01:00
Justin Cormack
3db42c2753 add ipvs conntrack and other missing net options
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-06-06 23:17:44 +01:00
Justin Cormack
6b5c0495f1 update to linux 4.4.12 and aufs 20160530
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-06-06 23:05:41 +01:00
Rolf Neugebauer
07a5affe3b kernel: update kernel patches
Added a patch to reduce verbosity of vmbus for unknown GUIDs.
Thes happen on every Hyper-V socket connection.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2016-05-23 19:01:13 +01:00
Rolf Neugebauer
57921ac699 kernel: update VMBus fix patch from MSFT
Also rebase patches to 4.4.10 (no code changes)

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2016-05-21 11:28:02 +01:00
Justin Cormack
2dc7c66e0d update Linux to 4.4.11 stable release
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-05-20 10:21:52 -07:00
Rolf Neugebauer
255a92a3dc kernel: enable VFAT and ISO9660 Filesystems in the kernel
DOS filesystems are handy for embedded development. ISO FS was
requested/suggested somewhere on a forum.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2016-05-19 10:35:53 +01:00
Justin Cormack
8b24be487b Merge pull request #133 from rneugeba/vmbus-up
kernel: cherry-pick more VMBus patches, fix for yet another kernel crash
2016-05-17 08:01:20 -05:00
Natanael Copa
26ae4693e1 update to kernel 4.4.10, aufs 20160516
Signed-off-by: Natanael Copa <natanael.copa@docker.com>
2016-05-17 12:55:24 +02:00
Rolf Neugebauer
61b38236a9 kernel: cherry-pick more VMBus patches, fix for yet another kernel crash
These are most of the changes to channel.c and channel_mgmt.c from upstream.

They are needed to apply a proposed patch to fix yet another kernel crash
we reported. This patch is also included.

With these patches applied many thousand connections with random data and up
to 10 concurrent connections are sustained without kernel crashes.

This patch also updates the core Hyper-V socket support to v11 (which
also obsoletes the previous patch added to work around a kernel bug)

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2016-05-17 11:06:07 +01:00
Rolf Neugebauer
58b500ccd9 kernel: Fix Null pointer de-reference in af_hvsock code
The Hyper-V socket patch has a bug which was triggered by a race condition when
the client connected and then immediately closed the connection before the
server would call accept(). This caused a kernel crash.

This patch was discussed with Dexuan Cui <decui@microsoft.com>, the original
author of the Hyper-V socket support.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2016-05-15 12:59:55 +01:00
Rolf Neugebauer
8a8896f477 kernel: Update Hyper-V socket patch to v10
This required pulling in the Qualcom IPC patches as those changed
the socket family enumeration.

All other patches should be the same.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2016-05-13 16:14:19 +01:00