[OpenAFS-win32-devel] Re: file locking

Jeffrey Altman jaltman@columbia.edu
Wed, 20 Jul 2005 20:56:04 -0400


This is a cryptographically signed message in MIME format.

--------------ms010505000100000908050604
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Eric Williams wrote:

> On Wed, 20 Jul 2005, Jeffrey Altman wrote:
> 
> 
>>A couple of points I would like to throw out.
>>
>>In the long term I would like to see the afsd_service.exe support both
>>the IFS and SMB/CIFS interfaces at the same time.   Therefore, I would
> 
> 
> this might require a bit more work than expected.  cm_scache_t structures
> represent files to the cache manager.  there is one per fid.
> 
> the SMB version uses an smb_fid_t structure for each fid.  it contains a
> pointer to the cm_scache_t.  it seems that file sharing is enforced by
> flags in the cm_scache_t struct, specifically openReads, openWrites, etc.

unfortunately, I don't think there is any code whatsoever that actually
utilizes the openReads and openWrites fields in the struct.

> the IFS version maintains a list of cm_scache_t's, with a single reference
> (refCount = 1) to each.  they are primarily used as "backing files".
> instead of an smb_fid_t per fid, there is, in the kernel, a chain of
> standard IFS data structures (common_fcb_header).  sharing counts are
> enforced in the kernel, using this data.
> 
> i made this decision for speed and ease of implementation.  i had
> originally tried doing all logic in the afsd daemon, by shuttling requests
> into userspace immediately, but this added a huge amount of overhead.  for
> a simple stat, cached read, or cached write request, it seemed excessive
> to have to copy that information from afsd, and not store it in the
> kernel.
> 
> on the subject of cached data, the two interfaces could synchronize
> themselves with an ioctl or similar when they access the same file.  is
> simultaneous access a use case for the dual-interface client?

preferrably yes but it does not necessarily have to be that way.
I can see arguments for both.

>>like to see locking implemented within the cache manager.  Given the
>>current demand I want to see locking available for the 1.4.1 release
>>which will still not support the IFS.   The IFS will be targeted either
>>at 1.6 or 2.0 or whatever comes next.
> 
> 
> i observed lock/unlock requests to happen in large numbers when, for
> instance, saving a file from an Office application.  i am interested to
> see some exact counts from Asanka's work.  keeping the locking code in the
> kernel provides, again, a speed advantage.  it is something to keep in
> mind.

keeping locks in the kernel is certainly a performance benefit if we
know for sure that only one mode can be in use at a time.

However, even if the locks are maintained in the kernel for the IFS
case, we will still need equivalent code in the CM for the SMB/CIFS
interface.

>>I am in no way committed to the existing cm_Lock / cm_Unlock
>>implementations.   If there is no good reason to have timed locks in the
>>cache manager then we should re-write that code.   Although, it would be
>>worth spending some time to understand why the timed locks were added to
>>that code in the first place.   Perhaps it is due to some SMB/CIFS
>>behavior that really should be implemented at SMB layer and not in the
>>CM layer.
>>
>>I have asked Asanka Herath to develop a test application to exercise the
>>various locking combinations.   We can use this application to observe
>>the current behavior of the AFS Client Service via the SMB/CIFS
>>interface and test the expected behavior of new code.
> 
> 
> i immediately recognize that there are serious downsides to keeping most
> of the logic in the kernel.  however, i feel that it is the best way to
> leverage the close proximity to the kernel.
> 
> eric



--------------ms010505000100000908050604
Content-Type: application/x-pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
Content-Description: S/MIME Cryptographic Signature

MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIJPzCC
AvowggJjoAMCAQICAw7NrDANBgkqhkiG9w0BAQQFADBiMQswCQYDVQQGEwJaQTElMCMGA1UE
ChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkgTHRkLjEsMCoGA1UEAxMjVGhhd3RlIFBlcnNv
bmFsIEZyZWVtYWlsIElzc3VpbmcgQ0EwHhcNMDUwNTI3MTc0MjQzWhcNMDYwNTI3MTc0MjQz
WjBrMQ8wDQYDVQQEEwZBbHRtYW4xFTATBgNVBCoTDEplZmZyZXkgRXJpYzEcMBoGA1UEAxMT
SmVmZnJleSBFcmljIEFsdG1hbjEjMCEGCSqGSIb3DQEJARYUamFsdG1hbkBjb2x1bWJpYS5l
ZHUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC+LutDu/YyHreNfoYd+ZtOjXsL
h67F2cmcVuBPBz+ZGDA+WpVEHrqXaZZO8acXBR5uAVfiwA1acE/kvD/CN5kAqx1VJuQ8Pvyk
iGHhUYTd27ZTliBIrptC7C/381gVwkS+a8jQFPJPO+OktZDzAYplGRY/MQCV8dIsvXUjucox
7TwTTdoLAJYRvHtfEcaCc6mO4ph6NeXQw8Grlx3IRAlTrkE5fBGyjH6R4fqnFTXRQAh1/bG+
i8hQvE6mud3mXdL2t7NP1Qxd9wW0/F/pnWY12IFP/luc3zEzIPvAe+nJluLuSEj0LZgP16mF
xBj1p+u9HPWcHRVX6q7+MQ0RWOv1AgMBAAGjMTAvMB8GA1UdEQQYMBaBFGphbHRtYW5AY29s
dW1iaWEuZWR1MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEEBQADgYEAUDUuzxiq8bbI8vq2
swRK513RphZp+fepyKU5mwBI6aF4GcmqITQILtfTG2SXnjSeY99d+bjOdK1DJFvVh9aOy8mh
2NbEnqMnJIZtg5+eEU64DIV5bQdDRpi99H9vA0sRATIquut+3YHba+zArj0VkVof2VI+ToBu
sHdtSrZYo0gwggL6MIICY6ADAgECAgMOzawwDQYJKoZIhvcNAQEEBQAwYjELMAkGA1UEBhMC
WkExJTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMTI1Ro
YXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBMB4XDTA1MDUyNzE3NDI0M1oXDTA2
MDUyNzE3NDI0M1owazEPMA0GA1UEBBMGQWx0bWFuMRUwEwYDVQQqEwxKZWZmcmV5IEVyaWMx
HDAaBgNVBAMTE0plZmZyZXkgRXJpYyBBbHRtYW4xIzAhBgkqhkiG9w0BCQEWFGphbHRtYW5A
Y29sdW1iaWEuZWR1MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvi7rQ7v2Mh63
jX6GHfmbTo17C4euxdnJnFbgTwc/mRgwPlqVRB66l2mWTvGnFwUebgFX4sANWnBP5Lw/wjeZ
AKsdVSbkPD78pIhh4VGE3du2U5YgSK6bQuwv9/NYFcJEvmvI0BTyTzvjpLWQ8wGKZRkWPzEA
lfHSLL11I7nKMe08E03aCwCWEbx7XxHGgnOpjuKYejXl0MPBq5cdyEQJU65BOXwRsox+keH6
pxU10UAIdf2xvovIULxOprnd5l3S9rezT9UMXfcFtPxf6Z1mNdiBT/5bnN8xMyD7wHvpyZbi
7khI9C2YD9ephcQY9afrvRz1nB0VV+qu/jENEVjr9QIDAQABozEwLzAfBgNVHREEGDAWgRRq
YWx0bWFuQGNvbHVtYmlhLmVkdTAMBgNVHRMBAf8EAjAAMA0GCSqGSIb3DQEBBAUAA4GBAFA1
Ls8YqvG2yPL6trMESudd0aYWafn3qcilOZsASOmheBnJqiE0CC7X0xtkl540nmPfXfm4znSt
QyRb1YfWjsvJodjWxJ6jJySGbYOfnhFOuAyFeW0HQ0aYvfR/bwNLEQEyKrrrft2B22vswK49
FZFaH9lSPk6AbrB3bUq2WKNIMIIDPzCCAqigAwIBAgIBDTANBgkqhkiG9w0BAQUFADCB0TEL
MAkGA1UEBhMCWkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3du
MRowGAYDVQQKExFUaGF3dGUgQ29uc3VsdGluZzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBT
ZXJ2aWNlcyBEaXZpc2lvbjEkMCIGA1UEAxMbVGhhd3RlIFBlcnNvbmFsIEZyZWVtYWlsIENB
MSswKQYJKoZIhvcNAQkBFhxwZXJzb25hbC1mcmVlbWFpbEB0aGF3dGUuY29tMB4XDTAzMDcx
NzAwMDAwMFoXDTEzMDcxNjIzNTk1OVowYjELMAkGA1UEBhMCWkExJTAjBgNVBAoTHFRoYXd0
ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMTI1RoYXd0ZSBQZXJzb25hbCBGcmVl
bWFpbCBJc3N1aW5nIENBMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDEpjxVc1X7TrnK
mVoeaMB1BHCd3+n/ox7svc31W/Iadr1/DDph8r9RzgHU5VAKMNcCY1osiRVwjt3J8CuFWqo/
cVbLrzwLB+fxH5E2JCoTzyvV84J3PQO+K/67GD4Hv0CAAmTXp6a7n2XRxSpUhQ9IBH+nttE8
YQRAHmQZcmC3+wIDAQABo4GUMIGRMBIGA1UdEwEB/wQIMAYBAf8CAQAwQwYDVR0fBDwwOjA4
oDagNIYyaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVBlcnNvbmFsRnJlZW1haWxDQS5j
cmwwCwYDVR0PBAQDAgEGMCkGA1UdEQQiMCCkHjAcMRowGAYDVQQDExFQcml2YXRlTGFiZWwy
LTEzODANBgkqhkiG9w0BAQUFAAOBgQBIjNFQg+oLLswNo2asZw9/r6y+whehQ5aUnX9MIbj4
Nh+qLZ82L8D0HFAgk3A8/a3hYWLD2ToZfoSxmRsAxRoLgnSeJVCUYsfbJ3FXJY3dqZw5jowg
T2Vfldr394fWxghOrvbqNOUQGls1TXfjViF4gtwhGTXeJLHTHUb/XV9lTzGCAzswggM3AgEB
MGkwYjELMAkGA1UEBhMCWkExJTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0
ZC4xLDAqBgNVBAMTI1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBAgMOzaww
CQYFKw4DAhoFAKCCAacwGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUx
DxcNMDUwNzIxMDA1NjA0WjAjBgkqhkiG9w0BCQQxFgQUNu+gzW6jP/I4Ut8A37Yy6kq5dEEw
UgYJKoZIhvcNAQkPMUUwQzAKBggqhkiG9w0DBzAOBggqhkiG9w0DAgICAIAwDQYIKoZIhvcN
AwICAUAwBwYFKw4DAgcwDQYIKoZIhvcNAwICASgweAYJKwYBBAGCNxAEMWswaTBiMQswCQYD
VQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkgTHRkLjEsMCoGA1UE
AxMjVGhhd3RlIFBlcnNvbmFsIEZyZWVtYWlsIElzc3VpbmcgQ0ECAw7NrDB6BgsqhkiG9w0B
CRACCzFroGkwYjELMAkGA1UEBhMCWkExJTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQ
dHkpIEx0ZC4xLDAqBgNVBAMTI1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENB
AgMOzawwDQYJKoZIhvcNAQEBBQAEggEAqlxYJbXV5LiEVwXAorJdGNVeX2RpzorxRokTaJYw
OxgBOSEEweIrnNcR6q+igs0sqVi8qM4Jmu6HxcemBNgnwd92aBQnc0mpsTNpUaOtcPTWkPGz
+7ppnknnk1kOTyOZIxaIJHmdCKacLZfVoUVc0q1HOaM1tiSVV0vQB/Sehra5me51y0f/5rFH
4ySmX0il7LIMzS0DOGh+BqxbGMQOnAmvX4hz7YVj5pjOzy0mPiIW3ywiXFWWNkQuaK9tZbr3
yVXdSGkKyHfpIVVG2bgQElBHQNG0NkcnzrSQu+ZK0kp3P0OUPM0/jMQIMOg1yB4zhOxzXy5/
ezY4ivlBX965ngAAAAAAAA==
--------------ms010505000100000908050604--