A nice little chat on IRC:
Day changed to 30 Okt 2014
(13:09) <metze> 217b4b60fd602bad569e7e06adabe308e23c5807
(13:22) <obnox> 105724073300af03eb0835b3c93d9b2e2bfacb07
(13:22) <obnox> rw = brl_get_locks_internal(talloc_tos(), fsp, false);
(13:28) <obnox> 5d8f64c47d02c2aa58f3f0c87903bbd41d086aa0
(13:30) <metze> 77d2c5af511d60b3437b9cfa2113283ed2aa6194
(13:33) <obnox> 29bf737
(13:34) <obnox> d0290a9
(13:34) <obnox> 4e9b4a5
(13:34) <obnox> 7a6cf35
(13:53) <metze> dd33241d29122721edd35e2d53992939ef556c1a
(13:57) <obnox> 5633861c4b6f22b09a9fa0bf91fdeb43b4f3558b
Here are a few Powershell commands I used for testing and analysis of SMB3 Multi-Channel:
Get-SmbMultiChannelConnection [-IncludeNotSelected ]
Especially the “-IncludeNotSelected” to Get-SmbMultiChannelConnection is
useful when debugging connection problems with Multi-Channel setups.
Interestingly, by appending a filter pipe to these commands, one can
produce more output, e.g.:
Get-SmbMultiChannelConnection | fl * | more
(fl is synonymous Filter-List)
This seems slightly strange at first but is actually quite handy.
Version 3 of the SMB protocol was introduced by by Microsoft with Windows Server 2012. One of the compelling features is called “multi-channel” and gives the client the possiblitly to bind multiple transport connections to a single SMB session, essentially implementing client-controlled link aggregation at the level of the SMB protocol. The purpose of this is (at least) twofold: Increasing throughput, since the client can spread I/O load across multiple physical network links, and fault-tolerance, because the SMB session will be functional as long as one channel is still functional.
A Samba-implementation of multi-channel is still work in progress, but already rather advanced.
Here is a screencast demo of how that already works with latest WIP code:
I have been searching for this feature a bit, so I note it down here for easier retreival…
Interactive rebasing (
git rebase -i) is one of the most awesome things about git. Usually my call pattern is
git rebase -i COMMIT1. This will present all commits of the current branch after COMMIT1 in the rebase editor. I.e. with this syntax, you always need the parent commit of the first commit you want to see in rebase. But sometimes one needs to interactively rebase all commits, e.g. when preparing a new branch before publishing it.
After playing with inserting a “x false” as the topmost line in the rebase editor, which works, I now found that git (of course ) has a syntax for this:
I struggeled for a while with Debian Squeeze, trying to persuade it to run as a libvirt/kvm guest on my Ubuntu 12.04 host. After successful installation, the guests failed to boot the kernel with the messages:
Loading Linux 2.6.32-5-amd ...
unaligned pointer 0x8ebf0002
Aborted. Press any key to exit.
For my own reference, I record here the solution I just found after trying all sorts of things like installing different versions of grub into the virtual machine:
In the week of February 27 to March 2, 2012, a few Samba developers accepted an invitation by Microsoft and attended an SMB2.2 testing opportunity at Microsofts Enterprise Engineering Center in Redmond. Jeremy Allison, Steve French, Volker Lendecke, Chris Hertel, Christian Ambach, Matthieu Patou and I found our way to Redmond with Stefan Metzmacher participating to some extent via IRC and mumble. For me, the event was a big success, and I am happy that I finally made up my mind to go there. This is my personal report.