View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000356 | LDMud 3.3 | Runtime | public | 2005-01-30 14:48 | 2005-05-15 13:02 |
Reporter | Assigned To | ||||
Priority | high | Severity | crash | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Product Version | 3.3 | ||||
Fixed in Version | 3.3 | ||||
Summary | 0000356: 28 Bits for the large block size field aren't enough. | ||||
Description | On Linux, using smalloc and pthreads means that core memory is allocated using malloc(). With a MIN_ALLOCED of 128 MByte, the malloc() sequence is malloc(98460) -> 08236208 malloc(134217948) ->afd0b008 malloc(67109084) -> abcf8008 The driver, when trying to build the bridge block from 0x08236208 to 0xafd0b008 exceeds the range limit for the M_SIZE block. Short term solution: don't use this combination. | ||||
Tags | No tags attached. | ||||
|
Possible solution: introduce a new flag 'M_HUGE': if it is set, it means that the size of the block is given in multiples of 64 Bytes (= 16 words). This allows to store blocksizes of up to 32 Bit in just 26 Bits (which would work fine for both smalloc and slaballoc). The limit would be blocksizes of 64KByte. |
|
Corrected in 3.3.670 with the introduction of an additional size field; checked for and rejected in 3.2. |
Date Modified | Username | Field | Change |
---|---|---|---|
2005-01-30 14:48 |
|
New Issue | |
2005-01-30 15:05 |
|
Note Added: 0000317 | |
2005-02-20 13:46 |
|
Status | new => resolved |
2005-02-20 13:46 |
|
Fixed in Version | => 3.3 |
2005-02-20 13:46 |
|
Resolution | open => fixed |
2005-02-20 13:46 |
|
Assigned To | => lars |
2005-02-20 13:46 |
|
Note Added: 0000332 | |
2005-05-15 13:02 |
|
Status | resolved => closed |